ConvertEventToExt.cs 4.71 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ControlPanel.Interfaces.Strategys;
using ControlPanel.Models;
using ControlPanel.Models.Extend;

using ControlPanel.Interfaces.Reposytorys;
using ControlPanel.NHInplimentRepository;
using ControlPanel.Contexts;


namespace ControlPanel.ImplimentStrateges
{
    public class ConvertEventToExt<T> : IConvertToExt<T>
    {
        

        private ExtEvent  _extevent;
        private IRoutsRepository _routsrepository;
        private ISubscribersRepository _subscriberrepository;
        private ILevelsRiversRepository _levelsriversrepositorys;
       
        public object New(T obj)
        {
           Event  oEvent= obj as Event;

           _extevent = new ExtEvent();

           if (_routsrepository == null)
               _routsrepository =new  NHRoutsRepository();
         
  
           Route route = _routsrepository.GetByID(oEvent.RefEventRout.id);

           var contextextroute = new ContextConvert<Route>(new ConvertRouteSubscribersToExt<Route>());
           ExtRoute extroute = contextextroute.ExecuteOperation(route) as ExtRoute;

           if (_levelsriversrepositorys == null)
               _levelsriversrepositorys = new NHLevelsRiversRepository();

           LevelRiver levelriver = _levelsriversrepositorys.GetByID(oEvent.RefEventMessage.id);
 
           var contextextlevelriver = new ContextConvert<LevelRiver>(new ConvertLevelRiverToExt<LevelRiver>());
           ExtLevelRiver extlevelriver = contextextlevelriver.ExecuteOperation(levelriver) as ExtLevelRiver;

          _extevent.id=oEvent.id;
          _extevent.titlerout = extroute.titleagk + " - " + extroute.titleszs;
          _extevent.id_message=oEvent.id;

           
          _extevent.repair = levelriver.repair;

          _extevent.opendoor = levelriver.opendoor;


          _extevent.s1 =oEvent.s1.ToString("dd.MM.yyyy HH:mm:ss");


          _extevent.s2 = "";
          _extevent.s3 = "";

          DateTime dt = Convert.ToDateTime("2000-01-01 00:00:00.000");

            if (oEvent.s2!=dt)
          _extevent.s2 =oEvent.s2.ToString("dd.MM.yyyy HH:mm:ss");

            if (oEvent.s3 != dt)
          _extevent.s3=oEvent.s3.ToString("dd.MM.yyyy HH:mm:ss");



         


          _extevent.datetimedevice=extlevelriver.datetimedevice;

          _extevent.datetimeveracity = extlevelriver.datetimeveracity;
      
    

          _extevent.datetimeserver=extlevelriver.datetimeserver; 
          _extevent.latitude=extlevelriver.latitude; 
          _extevent.longitude=extlevelriver.longitude; 
          _extevent.coordveracity=extlevelriver.coordveracity;
          _extevent.installplace=extlevelriver.installplace;

          double val = Math.Round(extlevelriver.levelbsv, 2);
          _extevent.levelbsv = val.ToString();

          val = Math.Round(extlevelriver.levelpointsuspen, 2);
          _extevent.levelpointsuspen = val.ToString();

          val = Math.Round(extlevelriver.levelzeropost, 2);
          _extevent.levelzeropost = val.ToString();  

          _extevent.causeevent = extlevelriver.causeevent; 


           return _extevent;
        }

    }

}


    


        /*


namespace ControlPanel.ImplimentStrateges
{
    public class ConvertLiveSzsToExt<T> : IConvertToExt<T>
    {
        private static Logger log = LogManager.GetCurrentClassLogger();

        private ExtLiveSubscribers _extliveszs;
        private ISubscribersRepository _szsrepository;

        public object New(T obj)
        {
            _extliveszs = null;
            try
            {
                LiveSubscribers szslive = obj as LiveSubscribers;

                try
                {
                    _extliveszs = new ExtLiveSubscribers();

                    _extliveszs.id = szslive.id;
                    _extliveszs.dt = szslive.dt.ToString("yyyy-MM-dd HH:mm:ss");

                   if (_szsrepository == null)
                       _szsrepository=new NHSubscribersRepository();

                   Subscribers szs = _szsrepository.GetByID(szslive.RefLiveSzsSzs.Id);
                   _extliveszs.titleszs = szs.Name;

                    switch (szslive.online)
                    {
                        case true:
                            _extliveszs.status = "online.png";
                            break;
                        case false:
                            _extliveszs.status = "offline.png";
                            break;
                    }

                }
                catch (Exception ex)
                {
                    log.Error(ex.Message);

                }

            }

            catch (Exception ex)
            {
                log.Error(ex.Message);
            }

            return _extliveszs;
        }


    }
}

        */