LogicLiveSubscribers.cs 6.27 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ControlPanel.Models;
using ControlPanel.Models.Extend;
using ControlPanel.Interfaces.Reposytorys;
using ControlPanel.NHInplimentRepository;

namespace ControlPanel.LogicLayers
{
    public class LogicLiveSubscribers
    {

        public static LogicLiveSubscribers instance = new LogicLiveSubscribers();

       

        #region _repositories
        private ILivesSubscribersRepository _liveszsrepository;
        #endregion

        public LogicLiveSubscribers()
        {
            if (_liveszsrepository == null)
                _liveszsrepository = new NHLivesSubscribersRepository();
        }



        public int Count()
        {
            int count = 0;
            try
            {

                     if (_liveszsrepository == null)
                _liveszsrepository = new NHLivesSubscribersRepository();
            
                count=_liveszsrepository.Count();


            }
            catch (Exception)
            {


            }

            return count;

        }

        public List<LiveSubscriberExt> GetLog()
        {
            List<LiveSubscriberExt> result=new List<LiveSubscriberExt>();

            try 
            {

               if (_liveszsrepository == null)
                _liveszsrepository = new NHLivesSubscribersRepository();

               List<LiveSubscribers> lstLiveSubscriber = _liveszsrepository.GetLog().ToList();

                foreach (LiveSubscribers livesubscriber in lstLiveSubscriber)
                {
                    Subscribers subscriber = LogicSubscribers.instance.GetById(livesubscriber.RefLiveSzsSzs.Id);


                    DateTime begin = livesubscriber.dt;
                    DateTime end = DateTime.Now;
                    TimeSpan rez = end - begin;

                    bool online=true;

                    if (rez.TotalMinutes > 2)
                        online = false;
                    else
                        online = true;




                    string soft = "нет информации";
                    if (livesubscriber.softversion != null)
                        soft = livesubscriber.softversion;



                    string phone = "нет номера";
                    string phoneszs = "нет номера";
                    string idteamviewer = "нет номера";

                    bool siren = false;


                    if (subscriber.phone != null)
                      phone = subscriber.phone;



                    if (subscriber.phoneszs != null)
                        phoneszs = subscriber.phoneszs;


                    if (subscriber.siren != null)
                        siren = subscriber.siren;

                    if (subscriber.idteamviewer != null)
                         idteamviewer = subscriber.idteamviewer;


                    result.Add(new LiveSubscriberExt
                    {
                         id=livesubscriber.id,
                         dt=livesubscriber.dt,
                         datetime = livesubscriber.dt.ToString("dd.MM.yyyy HH:mm:ss"),
                         regkey = subscriber.RegKey,
                         subscriber = subscriber.Name,
                         status = online,
                         softversion = soft,
                         phone = phone,
                         claim=subscriber.claim,
                         phoneszs = phoneszs,
                         siren=siren,
                         idteamviewer = idteamviewer
                    });

                }

            }
            catch(Exception) 
            {
                //
            }

            return result;
        }






        public void UpdateClaimSubscriver(string RegKey, bool claim)
        {
            try
            {
                if (_liveszsrepository == null)
                    _liveszsrepository = new NHLivesSubscribersRepository();

                List<Subscribers> lstSubscriber = LogicSubscribers.instance.GetSubByRegKey(RegKey);

                Subscribers sub = lstSubscriber[0];
                sub.claim = claim;

                LogicSubscribers.instance.UpdSzs(sub);
                
            }
            catch (Exception)
            {

            }
        }




        public void UpdateStatusSubscriver(string RegKey, string vers)
        {
            try
            {
                if (_liveszsrepository == null)
                    _liveszsrepository = new NHLivesSubscribersRepository();

                List<Subscribers> lstSubscriber = LogicSubscribers.instance.GetSubByRegKey(RegKey);

                LiveSubscribers livesubscriber = _liveszsrepository.GetBySubscriber(lstSubscriber[0]);

                if (livesubscriber != null)
                {
                    livesubscriber.dt = DateTime.Now;
                    livesubscriber.softversion = vers;
                    _liveszsrepository.SaveUpdate(livesubscriber);
                }
                else
                {
                    livesubscriber=new LiveSubscribers { 
                          dt=DateTime.Now,
                          RefLiveSzsSzs = lstSubscriber[0],
                         online=true,
                          softversion = vers
                      };
                    _liveszsrepository.Save(livesubscriber);
                }
                
            }
            catch (Exception)
            {

            }
        }



        public LiveSubscribers GetByID(int id)
        {

            LiveSubscribers live = null;

            if (_liveszsrepository == null)
                _liveszsrepository = new NHLivesSubscribersRepository();

            live = _liveszsrepository.GetByID(id);

            return live;
        }



        public void DeleteBySub(Subscribers sub)
        {

            try
            {

                if (_liveszsrepository == null)
                    _liveszsrepository = new NHLivesSubscribersRepository();

                LiveSubscribers live = _liveszsrepository.GetBySubscriber(sub);

                while (live != null)
                {

                    _liveszsrepository.Delete(live);

                    live = _liveszsrepository.GetBySubscriber(sub);


                }

            }
            catch (Exception)
            {
            }


        }




    }
}