RoutsController.cs 4.49 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;

using Newtonsoft.Json.Linq;
using ControlPanel.Models;
using System.Runtime.Serialization;
using ControlPanel.LogicLayers;
using System.IO;
using ControlPanel.Models.Extend;
using System.Web;
using System.Web.Mvc;

namespace ControlPanel.Controllers
{
    public class RoutsController : Controller
    {
        /// <summary>
        /// Получение списка всех маршрутов
        /// </summary>
        /// <returns></returns>
        public JObject GetLog(int page, int start, int limit, int id_subscriber)
        {

            List<ExtRoute> lstRouts = new List<ExtRoute>();
            Subscribers subscriber = null;

            try
            {


                try
                {
                    subscriber = LogicSubscribers.instance.GetById(id_subscriber);
                }
                catch (Exception)
                {

                }

                lstRouts = LogicRouts.instance.GetLog(page, start, limit, subscriber);

                //  lstRouts.Sort(delegate(ExtRoute obj1, ExtRoute obj2)
                // { return obj1.titleagk.CompareTo(obj2.Name); });

            }
            catch (Exception ex)
            {
                //
            }


            lstRouts.Sort(delegate(ExtRoute obj1, ExtRoute obj2)
            { return obj2.id.CompareTo(obj1.id); });


            JObject result = JObject.FromObject(new
            {
                total = LogicRouts.instance.Count(subscriber),
                routs = lstRouts

            });

            return result;
        }



   
        
        public JObject EditRoute(int id,string titleszs,string titleagk,bool enabled)
        {
            try
            {


       
               

                Route route = LogicRouts.instance.GetById(id);

                List<ExtAgk> lstAgk = LogicAgk.instance.GetExtAgk();
                ExtAgk extagk = lstAgk.Find(x => x.title == titleagk);

                Agk agk = LogicAgk.instance.GetById(extagk.id);

                route.RefRouteAgk = agk;
                route.enabled = enabled;

                LogicRouts.instance.Edit(route);

            }
            catch (Exception)
            {
            }

            JObject result = JObject.FromObject(new
            {
                data = ""
            });
            return result;

        }

   
       public JObject AddRoute(int id_subscribers,int id_agk)
      {
            ExtRoute routelast = null;
            string error = "";
            try
            {



                routelast = LogicRouts.instance.New(id_subscribers, id_agk);

                if (true)
                {
                    error = "Ошибка при добавлении нового маршрута, такая запись уже существует в базе!";
                }
               
           }
            catch (Exception)
           {

           }


            JObject result = JObject.FromObject(new
            {
              data = routelast,
               error = error
            });
return result;
        }
   

        public JObject GetExtRoute()
        {

            List<RouteExt> lstRouteExt = new List<RouteExt>();
            try
            {
                List<ExtRoute> lstExtRoute = LogicRouts.instance.Get();

                foreach (ExtRoute extroute in lstExtRoute)
                    lstRouteExt.Add(new RouteExt
                    {
                        id = extroute.id,
                        title = extroute.titleszs + " - " + extroute.titleagk

                    });

            }
            catch (Exception)
            {


            }

            lstRouteExt.Add(new RouteExt { id = 0, title = "Все маршруты" });


            lstRouteExt.Sort(delegate(RouteExt obj1, RouteExt obj2)
            { return obj2.id.CompareTo(obj1.id); });


            JObject res = JObject.FromObject(new
            {
                routeext = lstRouteExt,
                success = true,
                total = lstRouteExt.Count
            });





            return res;
        }


        public JObject Delete(int id)
        {
            string error = "";
            try
            {
                error = LogicRouts.instance.Delete(id);

            }
            catch (Exception)
            {

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

            return result;


        }
    }
}