UpdInfoController.cs 5.43 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Newtonsoft.Json.Linq;
using ControlPanel.Models;
using System.Runtime.Serialization;
using ControlPanel.LogicLayers;
using System.IO;
using ControlPanel.Models.Extend;
using ControlPanel.Interfaces;
using ControlPanel.Interfaces.Reposytorys;
using ControlPanel.NHInplimentRepository;
using ControlPanel.ImplimentStrateges;
using ControlPanel.Contexts;
using System.Xml;
using System.Net;
using ControlPanel.LogicLayers;



namespace ControlPanel.Controllers
{
    public class UpdInfoController : ApiController
    {
        public class Task
        {
            public  bool isupdszs { get; set; }  
            public  bool isupddb { get; set; }  
            public  bool isdownload { get; set; }

        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="page"></param>
        /// <param name="start"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        

        

     
        public JObject GetLog(int page, int start, int limit)
        {

            LogicUpdInfo.instance.InitTableInfo();


            List<UpdInfoExt> lstUpdInfo = LogicUpdInfo.instance.GetLog(page, start, limit);

            JObject result = JObject.FromObject(new
            {
                lstUpdInfo = lstUpdInfo,
                success = true,
                total = LogicUpdInfo.instance.Count()
            });
            return result;
        
        }

     

        /// <summary>
        /// Получение статуса обновление БД на СЗС
        /// </summary>
        /// <param name="data"></param>
        public void SetEndUpdDb(JObject data)
        {
            try 
            {
                var RegKey = data["RegKey"];
                var IsUpdSzs = data["isupddb"];
                string regkey = RegKey.ToString();
                bool isupddb = Convert.ToBoolean(IsUpdSzs.ToString());
                LogicUpdInfo.instance.SetIsUpdDb(regkey, isupddb);  

            }
            catch(Exception) 
            {

            }
         
        }

        /// <summary>
        /// Установка статуса обновления  программы на СЗС 
        /// </summary>
        /// <param name="data"></param>
        public void SetEndUpdSoft(JObject data)
        {
            try
            {
                var RegKey = data["RegKey"];
                var IsUpdDb = data["isupdszs"];

                string regkey = RegKey.ToString();
                bool isupddb = Convert.ToBoolean(IsUpdDb.ToString());

                LogicUpdInfo.instance.SetIsUpdSzs(regkey, isupddb);   

            }
            catch (Exception)
            {

            }

        }

        /// <summary>
        /// Установка статуса  загрузки новых версий  script.sql и ПО Szs 
        /// </summary>
        /// <param name="data"></param>
        public void SetEndDownload(JObject data)
        {
            try
            {
                var RegKey = data["RegKey"];
                var IsDownLoad = data["isdownload"];

                string regkey = RegKey.ToString();

                bool isdownload = Convert.ToBoolean(IsDownLoad.ToString());
                LogicUpdInfo.instance.SetisUpdDownload(regkey, isdownload);

            }
            catch (Exception)
            {

            }
        }



        /// <summary>
        ///   Получение команд на обновление и загрузки данных 
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public JObject InfoUpdate(JObject data)
        {

            UpdInfo updinfo = null;

            try 
            {
            var RegKey = data["RegKey"];
            string regkey= RegKey.ToString();
            List<Subscribers> lstSubsriber = LogicSubscribers.instance.GetSubByRegKey(regkey).ToList();

            if (lstSubsriber[0] != null)
                   updinfo = LogicUpdInfo.instance.GetBySubsriber(lstSubsriber[0]);

            }
            catch (Exception)
            {

            }
    
            Task task = new Task { isdownload = updinfo.isdownload, isupddb = updinfo.isupddb, isupdszs = updinfo.isupdszs };


           JObject result = JObject.FromObject(new
            {
                result = task
            });

            return result;

        }

        /// <summary>
        ///  Установить к обновлению
        /// </summary>
        /// <param name="id"></param>
        /// <param name="tobeupd"></param>
        public void Update(JObject data)
        {
           
            try
            {
                dynamic json = JValue.Parse(data.ToString());

                int id=json.id;
    
                bool isupdszs=json.isupdszs;
                bool isupddb=json.isupddb;
                bool isdownload=json.isdownload;

                LogicUpdInfo.instance.Edit(id, isupdszs,isupddb,isdownload);
            }
            catch (Exception)
            {

            }

        }


 






        /// <summary>
        /// 
        /// </summary>
           // GET api/db
        public IEnumerable<string> Get()
        {
            LogicUpdInfo.instance.InitTableInfo();
            return new string[] { "Создание БД", "DataStorage" };
        }





          
       
     
    }
}