Ejemplo n.º 1
0
 /// <summary>
 /// Создать и сохранить строку Oracle_OutputSostav
 /// </summary>
 /// <param name="out_sostav"></param>
 /// <param name="status"></param>
 /// <returns></returns>
 protected int SaveOutputSostav(NumVagStpr1OutStDoc out_sostav, statusSting status)
 {
     try
     {
         return(oos.SaveOracle_OutputSostav(new Oracle_OutputSostav()
         {
             ID = 0,
             DateTime = out_sostav.DATE_OUT_ST,
             DocNum = out_sostav.ID_DOC,
             IDOrcStationFrom = out_sostav.K_STAN != null ? (int)out_sostav.K_STAN : 0,
             IDOrcStationOn = out_sostav.ST_OUT_ST != null ? (int)out_sostav.ST_OUT_ST : 0,
             WayNumOn = out_sostav.N_PUT_OUT_ST != null ? (int)out_sostav.N_PUT_OUT_ST : 0,
             NaprOn = out_sostav.NAPR_OUT_ST != null ? (int)out_sostav.NAPR_OUT_ST : 0,
             CountWagons = null,
             CountSetWagons = null,
             CountUpdareWagons = null,
             Close = null,
             Status = (int)status,
             Message = null
         }));
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[KISTransfer.SaveOutputSostav]: Ошибка выполнения переноса информации о составе (копирование по отправке из внутрених станций) из базы данных КИС в таблицу учета прибытия составов на АМКР (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
         return(-1);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Удалить ранее перенесеные составы
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        protected int DeleteArrivalSostav(List <Oracle_ArrivalSostav> list)
        {
            if (list == null | list.Count == 0)
            {
                return(0);
            }
            int delete = 0;
            int errors = 0;

            foreach (Oracle_ArrivalSostav or_as in list)
            {
                // Удалим вагоны из системы RailCars
                transfer_rc.DeleteVagonsToNaturList(or_as.NaturNum, or_as.DateTime);
                // TODO: Сделать код удаления вагонов из RailWay

                or_as.Close  = DateTime.Now;
                or_as.Status = (int)statusSting.Delete;
                int res = oas.SaveOracle_ArrivalSostav(or_as);
                if (res > 0)
                {
                    delete++;
                }
                if (res < 1)
                {
                    LogRW.LogError(String.Format("[KISTransfer.DeleteArrivalSostav] :Ошибка удаления данных из таблицы учета прибытия составов на АМКР, IDOrcSostav: {0}", or_as.IDOrcSostav), this.eventID);
                    errors++;
                }
            }
            LogRW.LogWarning(String.Format("Определено удаленных ранее прибывших составов в системе КИС {0}, удалено из таблицы учета прибытия составов на АМКР {1}, ошибок удаления {2}", list.Count(), delete, errors), this.eventID);
            return(delete);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Добавить новые составы появившиеся после переноса
        /// </summary>
        /// <param name="list"></param>
        protected int InsertArrivalSostav(List <PromSostav> list)
        {
            if (list == null | list.Count == 0)
            {
                return(0);
            }
            int insers = 0;
            int errors = 0;

            foreach (PromSostav ps in list)
            {
                int res = SaveArrivalSostav(ps, statusSting.Insert);
                if (res > 0)
                {
                    insers++;
                }
                if (res < 1)
                {
                    LogRW.LogError(String.Format("[KISTransfer.InsertArrivalSostav] :Ошибка добавления данных в таблицу учета прибытия составов на АМКР, натурный лист: {0}, дата:{1}-{2}-{3} {4}:{5}", ps.N_NATUR, ps.D_DD, ps.D_MM, ps.D_YY, ps.T_HH, ps.T_MI), this.eventID);
                    errors++;
                }
            }
            LogRW.LogWarning(String.Format("Определено добавленных прибывших составов в системе КИС {0}, добавлено таблицу учета прибытия составов на АМКР {1}, ошибок добавления {2}", list.Count(), insers, errors), this.eventID);
            return(insers);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Удалить вагоны пренадлежащие документу по отправке на станцию
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public int DeleteVagonsToDocOutput(int doc)
        {
            int delete = 0;

            try
            {
                IQueryable <VAGON_OPERATIONS> list = GetVagonsOperationsToDocOutputSostav(doc).OrderBy(o => o.num_vag_on_way);
                if (list == null)
                {
                    return(0);
                }
                foreach (VAGON_OPERATIONS vag in list.ToList())
                {
                    int res = DeleteChainVagons(vag.id_oper, (int)vag.num_vagon, vag.IDSostav);
                    if (res > 0)
                    {
                        delete++;
                    }
                }
            }
            catch (Exception e)
            {
                LogRW.LogError(e, String.Format("DeleteVagonsToDocOutput(doc:{0})", doc), eventID);
                return(-1);
            }
            return(delete);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// смищение(выравнивание) вагонов на пути с начальным номером
        /// </summary>
        /// <param name="way"></param>
        /// <param name="start_num"></param>
        public int OffSetCars(int way, int start_num)
        {
            try
            {
                int result = 0;
                List <VAGON_OPERATIONS> list = new List <VAGON_OPERATIONS>();
                list = GetWagonsOfWay(way).Where(o => o.lock_id_way == null).OrderBy(o => o.num_vag_on_way).ToList();

                foreach (VAGON_OPERATIONS wag in list)
                {
                    if (wag.num_vag_on_way != start_num)
                    {
                        wag.num_vag_on_way = start_num;
                        int res = SaveVagonsOperations(wag);
                        if (res > 0)
                        {
                            result++;
                        }
                        if (res < 0)
                        {
                            LogRW.LogError(String.Format("[OffSetCars]: Ошибка выравнивания позиции вагона №{0}, id_oper {1}", wag.num_vagon, wag.id_oper), eventID);
                        }
                    }
                    start_num++;
                }
                return(result);
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[Maneuvers.OffSetCars]: Ошибка, источник: {0}, № {1}, описание:  {2}", e.Source, e.HResult, e.Message), this.eventID);
                return(-1);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Получить тип операции над составом
 /// </summary>
 /// <param name="file"></param>
 /// <returns></returns>
 protected int GetOperationToXml(string file)
 {
     try
     {
         XDocument doc = XDocument.Load(file);
         foreach (XElement element in doc.Element("NewDataSet").Elements("Table"))
         {
             string opr = (string)element.Element("Operation");
             if (String.IsNullOrEmpty(opr))
             {
                 return((int)tMTOperation.not);
             }
             if (opr.Trim().ToUpper() == "ПРИБ")
             {
                 return((int)tMTOperation.coming);
             }
             if (opr.Trim().ToUpper() == "ТСП")
             {
                 return((int)tMTOperation.tsp);
             }
         }
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[MT.GetOperationToXml]: Ошибка определения операции файл:{0}. Подробно: (Источник:{1}, Код:{2}, Описание:{3})", file, e.Source, e.HResult, e.Message), this.eventID);
     }
     return((int)tMTOperation.not);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="ReferenceCountry"></param>
        /// <returns></returns>
        public int SaveReferenceCountry(ReferenceCountry ReferenceCountry)
        {
            ReferenceCountry dbEntry;

            if (ReferenceCountry.IDCountry == 0)
            {
                dbEntry = new ReferenceCountry()
                {
                    IDCountry = 0,
                    Country   = ReferenceCountry.Country,
                    Code      = ReferenceCountry.Code
                };
                context.ReferenceCountry.Add(dbEntry);
            }
            else
            {
                dbEntry = context.ReferenceCountry.Find(ReferenceCountry.IDCountry);
                if (dbEntry != null)
                {
                    dbEntry.Country = ReferenceCountry.Country;
                    dbEntry.Code    = ReferenceCountry.Code;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveReferenceCountry", eventID);
                return(-1);
            }
            return(dbEntry.IDCountry);
        }
Ejemplo n.º 8
0
        private int dayControllingDelete;            // кол. дней период присутствия информации в прибытии и отправке.

        public CopyingInlandKIS()
        {
            try
            {
                Settings set = new Settings();
                set.Get_Project(this.className, this.classDescription, true); // Проверим наличие проекта
                this.activeCopyOutput = (bool)set.GetBoolSettingConfigurationManager("activeCopyOutput", this.className, true);
                this.activeCopyInput  = (bool)set.GetBoolSettingConfigurationManager("activeCopyInput", this.className, true);
                this.activeDelete     = (bool)set.GetBoolSettingConfigurationManager("activeDelete", this.className, true);


                this.dayControllingCopyOutput_double = (int)set.GetIntSettingConfigurationManager("dayControllingCopyOutput_double", this.className, true);
                this.dayControllingCopyOutput_ins    = (int)set.GetIntSettingConfigurationManager("dayControllingCopyOutput_ins", this.className, true);
                this.dayControllingCopyOutput_close  = (int)set.GetIntSettingConfigurationManager("dayControllingCopyOutput_close", this.className, true);

                this.dayControllingCopyInput_del = (int)set.GetIntSettingConfigurationManager("dayControllingCopyInput_del", this.className, true);
                this.dayControllingCopyInput_ins = (int)set.GetIntSettingConfigurationManager("dayControllingCopyInput_ins", this.className, true);

                this.dayControllingDelete = (int)set.GetIntSettingConfigurationManager("dayControllingDelete", this.className, true);
            }
            catch (Exception e)
            {
                error_settings = true;
                LogRW.LogError(String.Format("[CopyingInlandKIS]: Ошибка выполнения инициализации classa {0} (источник: {1}, № {2}, описание:  {3})", this.className, e.Source, e.HResult, e.Message), this.eventID);
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Получить список файлов составов
        /// </summary>
        /// <param name="files"></param>
        /// <returns></returns>
        protected List <FileSostav> GetFileSostav(string[] files)
        {
            List <FileSostav> listfs = new List <FileSostav>();

            foreach (string file in files)
            {
                try
                {
                    if (!String.IsNullOrEmpty(file))
                    {
                        FileInfo fi        = new FileInfo(file);
                        string   index     = fi.Name.Substring(5, 13);
                        DateTime date      = DateTime.Parse(fi.Name.Substring(19, 4) + "-" + fi.Name.Substring(23, 2) + "-" + fi.Name.Substring(25, 2) + " " + fi.Name.Substring(27, 2) + ":" + fi.Name.Substring(29, 2) + ":00");
                        int      operation = GetOperationToXml(file);
                        // Добавим строку
                        listfs.Add(new FileSostav()
                        {
                            Index     = index,
                            Date      = date,
                            Operation = operation,
                            File      = file
                        });
                    }
                }
                catch (Exception e)
                {
                    LogRW.LogError(String.Format("[MT.GetFileSostav] :Ошибка формирования строки списка файлов состава List<FileSostav>, файл:{0}. Подробно: (Источник:{1}, Код:{2}, Описание:{3})", file, e.Source, e.HResult, e.Message), this.eventID);
                }
            }
            return(listfs);
        }
Ejemplo n.º 10
0
        public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
        {
            try
            {
                if (!runTimer)
                {
                    DateTime dt_start = DateTime.Now;
                    LogRW.LogInformation(String.Format("Сервис {0} - активен", this.ServiceName), this.eventID);
                    ArrivalMT amt = new ArrivalMT();
                    amt.Transfer();
                    ArrivalKIS akis = new ArrivalKIS();
                    akis.Transfer();
                    SynchronizeKIS skis = new SynchronizeKIS();
                    skis.Synchronize();
                    CopyingInlandKIS cikis = new CopyingInlandKIS();
                    cikis.Copy();

                    TimeSpan ts = DateTime.Now - dt_start;
                    LogRW.LogInformation(String.Format("Сервис {0} - время выполнения: {1} мин {2} сек {3} мсек", this.ServiceName, ts.Minutes, ts.Seconds, ts.Milliseconds), this.eventID);
                }
                else
                {
                    LogRW.LogWarning(String.Format("Сервис {0} - занят", this.ServiceName), this.eventID);
                }
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[RWServiceArrival.OnTimer] : Общая ошибка выполнения сервиса {0} (источник: {1}, № {2}, описание:  {3})", this.ServiceName, e.Source, e.HResult, e.Message), this.eventID);
            }
            finally
            {
                runTimer = false;
                //LogRW.LogInformation(String.Format("Сервис {0} - не активен", this.ServiceName), this.eventID);
            }
        }
Ejemplo n.º 11
0
        public int Synchronize()
        {
            if (error_settings)
            {
                LogRW.LogWarning("Выполнение метода SynchronizeKIS.Synchronize() - отменено, ошибка нет данных Settings.", this.eventID);
            }
            if (!this.activeWagons)
            {
                LogRW.LogWarning(String.Format("Синхронизация справочника вагонов classa:{0} - отключена. (Settings:activeSynchronizeWagons).", this.className), this.eventID);
                return(0);
            }
            KIS_Transfer kist = new KIS_Transfer();

            LogRW.LogInformation(String.Format("Сервис синхронизации справочников между системами КИС и RailWay :{0} - запущен", this.className), this.eventID);
            try
            {
                if (activeWagons)
                {
                    int res_swagons = kist.SynchronizeWagons(this.dayControllingWagons);
                }
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[SynchronizeKIS.Synchronize]: Общая ошибка синхронизации справочников между системами КИС и RailWay (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
            }
            return(0); // TODO: исправить возврат
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="TUPIKI"></param>
        /// <returns></returns>
        public int SaveTUPIKI(TUPIKI tupiki)
        {
            TUPIKI dbEntry;

            if (tupiki.id_tupik == 0)
            {
                dbEntry = new TUPIKI()
                {
                    id_tupik = 0,
                    id_ora   = tupiki.id_ora,
                    name     = tupiki.name
                };
                context.TUPIKI.Add(dbEntry);
            }
            else
            {
                dbEntry = context.TUPIKI.Find(tupiki.id_tupik);
                if (dbEntry != null)
                {
                    dbEntry.id_ora = tupiki.id_ora;
                    dbEntry.name   = tupiki.name;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveTUPIKI", eventID);
                return(-1);
            }
            return(dbEntry.id_tupik);
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Сохранить состав из КИС
 /// </summary>
 /// <param name="ps"></param>
 /// <returns></returns>
 protected int SaveArrivalSostav(PromSostav ps, statusSting status)
 {
     try
     {
         DateTime DT = DateTime.Parse(ps.D_DD.ToString() + "-" + ps.D_MM.ToString() + "-" + ps.D_YY.ToString() + " " + ps.T_HH.ToString() + ":" + ps.T_MI.ToString() + ":00", CultureInfo.CreateSpecificCulture("ru-RU"));
         return(oas.SaveOracle_ArrivalSostav(new Oracle_ArrivalSostav()
         {
             IDOrcSostav = 0,
             DateTime = DT,
             Day = (int)ps.D_DD,
             Month = (int)ps.D_MM,
             Year = (int)ps.D_YY,
             Hour = (int)ps.T_HH,
             Minute = (int)ps.T_MI,
             NaturNum = ps.N_NATUR,
             IDOrcStation = (int)ps.K_ST,
             WayNum = ps.N_PUT,
             Napr = ps.NAPR,
             CountWagons = null,
             CountNatHIist = null,
             CountSetWagons = null,
             CountSetNatHIist = null,
             Close = null,
             Status = (int)status,
             ListWagons = null,
             ListNoSetWagons = null,
             ListNoUpdateWagons = null,
         }));
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[KISTransfer.SaveArrivalSostav]: Ошибка выполнения переноса информации о составе из базы данных КИС в таблицу учета прибытия составов на АМКР (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
         return(-1);
     }
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Конструктор
 /// </summary>
 public ArrivalMT()
 {
     try
     {
         Settings set = new Settings();
         set.Get_Project(this.className, this.classDescription, true); // Проверим наличие проекта
         // Получим настройки подключения
         connect_SFTP = new connectSFTP()
         {
             Host = set.GetStringSettingConfigurationManager("Host", this.className, true),
             Port = (int)set.GetIntSettingConfigurationManager("Port", this.className, true),
             User = set.GetStringSettingConfigurationManager("User", this.className, true),
             PSW  = set.GetStringSettingConfigurationManager("PSW", this.className, true)
         };
         this.fromPathHost        = set.GetStringSettingConfigurationManager("fromPathsHost", this.className, true);
         this.FileFiltrHost       = set.GetStringSettingConfigurationManager("FileFiltrHost", this.className, true);
         this.toDirPath           = set.GetStringSettingConfigurationManager("toDirPath", this.className, true);
         this.toTMPDirPath        = set.GetStringSettingConfigurationManager("toTMPDirPath", this.className, true);
         this.DeleteFile          = (bool)set.GetBoolSettingConfigurationManager("DeleteFile", this.className, true);
         this.RewriteFile         = (bool)set.GetBoolSettingConfigurationManager("RewriteFile", this.className, true);
         this.dayMonitoringTrains = (int)set.GetIntSettingConfigurationManager("dayMonitoringTrains", this.className, true);
     }
     catch (Exception e)
     {
         error_settings = true;
         LogRW.LogError(String.Format("[ArrivalMT.ArrivalMT] : Ошибка выполнения инициализации classa {0} (источник: {1}, № {2}, описание:  {3})", this.className, e.Source, e.HResult, e.Message), this.eventID);
     }
 }
Ejemplo n.º 15
0
        /// <summary>
        /// сделать маневр по вагонам стоящим на указаном пути
        /// </summary>
        /// <param name="way"></param>
        /// <returns></returns>
        public int ManeuverCars(int way, Side side_station)
        {
            int result = 0;
            // Получить вагоны и отгрупировать их по путям отправки
            List <IGrouping <int?, VAGON_OPERATIONS> > group_list = new List <IGrouping <int?, VAGON_OPERATIONS> >();

            group_list = rc_vo.GetWagonsOfWay(way).Where(o => o.lock_id_way != null).GroupBy(o => o.lock_id_way).ToList();

            //var group_list = rc_vo.GetWagonsOfWay(way).Where(o => o.lock_id_way != null).GroupBy(o => o.lock_id_way).ToList();
            try
            {
                foreach (IGrouping <int?, VAGON_OPERATIONS> group_wag in group_list)
                {
                    List <VAGON_OPERATIONS> list_wag = new List <VAGON_OPERATIONS>();
                    list_wag = group_wag.OrderBy(o => o.lock_order).ToList();
                    int res = ManeuverCars(list_wag, side_station);
                    if (res > 0)
                    {
                        result += res;
                    }
                }
                rc_vo.OffSetCars(way, 1);
                return(result);
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[Maneuvers.ManeuverCars(2)]: Ошибка, источник: {0}, № {1}, описание:  {2}", e.Source, e.HResult, e.Message), this.eventID);
                return((int)errorManeuvers.global);
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// удалить строку состава отсутсвующего после переноса
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        protected int DeleteOutputSostav(List <Oracle_OutputSostav> list)
        {
            if (list == null | list.Count == 0)
            {
                return(0);
            }
            int delete = 0;
            int errors = 0;

            foreach (Oracle_OutputSostav or_os in list)
            {
                // Удалим вагоны из системы RailCars
                transfer_rc.DeleteVagonsToDocOutput(or_os.DocNum);
                // TODO: Сделать код удаления вагонов из RailWay

                or_os.Close  = DateTime.Now;
                or_os.Status = (int)statusSting.Delete;
                int res = oos.SaveOracle_OutputSostav(or_os);
                if (res > 0)
                {
                    delete++;
                }
                if (res < 1)
                {
                    LogRW.LogError(String.Format("[KISTransfer.DeleteOutputSostav] :Ошибка удаления данных из таблицы учета прибытия составов (копирование по отправке из внутрених станций), ID: {0}", or_os.ID), this.eventID);
                    errors++;
                }
            }
            LogRW.LogWarning(String.Format("Определено для удаленния прибывших составов (копирование по отправке из внутрених станций) {0}, удалено {1}, ошибок удаления {2}", list.Count(), delete, errors), this.eventID);
            return(delete);
        }
Ejemplo n.º 17
0
        /// <summary>
        ///  Сделать маневр по группе вагонов
        /// </summary>
        /// <param name="list"></param>
        /// <param name="side_station"></param>
        /// <returns></returns>
        public int ManeuverCars(List <VAGON_OPERATIONS> list, Side side_station)
        {
            if (list.Count() == 0)
            {
                return((int)errorManeuvers.no_list_wagon_operations);
            }
            int result = 0;

            try
            {
                var group_site = list.GroupBy(o => o.lock_side);

                foreach (var group_wag in group_site.ToList())
                {
                    List <VAGON_OPERATIONS> list_wag = new List <VAGON_OPERATIONS>();
                    list_wag = list.OrderByDescending(o => o.lock_order).ToList();
                    //TODO: Включить если ненадо учитывать правило следования вагонов
                    //list_wag = group_wag.Key == (int)side_station ? list.OrderByDescending(o => o.lock_order).ToList() : list.OrderBy(o => o.lock_order).ToList();
                    foreach (VAGON_OPERATIONS wag in list_wag)
                    {
                        int res = ManeuverCar(wag, side_station);
                        if (res > 0)
                        {
                            result++;
                        }
                    }
                }
                return(result);
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[Maneuvers.ManeuverCars(1)]: Ошибка, источник: {0}, № {1}, описание:  {2}", e.Source, e.HResult, e.Message), this.eventID);
                return((int)errorManeuvers.global);
            }
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Добавить новые составы появившиеся после переноса
        /// </summary>
        /// <param name="list"></param>
        protected int InsertOutputSostav(List <NumVagStpr1OutStDoc> list)
        {
            if (list == null | list.Count == 0)
            {
                return(0);
            }
            int insers = 0;
            int errors = 0;

            foreach (NumVagStpr1OutStDoc out_s in list)
            {
                int res = SaveOutputSostav(out_s, statusSting.Insert);
                if (res > 0)
                {
                    insers++;
                }
                if (res < 1)
                {
                    LogRW.LogError(String.Format("[KISTransfer.InsertOutputSostav] :Ошибка добавления данных в таблицу учета прибытия составов (копирование по отправке из внутрених станций), номер документа: {0}", out_s.ID_DOC), this.eventID);
                    errors++;
                }
            }
            LogRW.LogWarning(String.Format("Определено для добавленных новых составов (копирование по отправке из внутрених станций) {0}, добавлено {1}, ошибок добавления {2}", list.Count(), insers, errors), this.eventID);
            return(insers);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="WAYS"></param>
        /// <returns></returns>
        public int SaveVAGONS(VAGONS VAGONS)
        {
            VAGONS dbEntry;

            if (VAGONS.id_vag == 0)
            {
                dbEntry = new VAGONS()
                {
                    id_vag      = VAGONS.id_vag,
                    num         = VAGONS.num,
                    id_ora      = VAGONS.id_ora,
                    id_owner    = VAGONS.id_owner,
                    id_stat     = VAGONS.id_stat,
                    is_locom    = VAGONS.is_locom,
                    locom_seria = VAGONS.locom_seria,
                    rod         = VAGONS.rod,
                    st_otpr     = VAGONS.st_otpr,
                    date_ar     = VAGONS.date_ar,
                    date_end    = VAGONS.date_end,
                    date_in     = VAGONS.date_in,
                    IDSostav    = VAGONS.IDSostav,
                    Natur       = VAGONS.Natur,
                    Transit     = VAGONS.Transit
                };
                context_edit.VAGONS.Add(dbEntry);
            }
            else
            {
                dbEntry = context_edit.VAGONS.Find(VAGONS.id_vag);
                if (dbEntry != null)
                {
                    //dbEntry.id_vag =  VAGONS.id_vag;
                    dbEntry.num         = VAGONS.num;
                    dbEntry.id_ora      = VAGONS.id_ora;
                    dbEntry.id_owner    = VAGONS.id_owner;
                    dbEntry.id_stat     = VAGONS.id_stat;
                    dbEntry.is_locom    = VAGONS.is_locom;
                    dbEntry.locom_seria = VAGONS.locom_seria;
                    dbEntry.rod         = VAGONS.rod;
                    dbEntry.st_otpr     = VAGONS.st_otpr;
                    dbEntry.date_ar     = VAGONS.date_ar;
                    dbEntry.date_end    = VAGONS.date_end;
                    dbEntry.date_in     = VAGONS.date_in;
                    dbEntry.IDSostav    = VAGONS.IDSostav;
                    dbEntry.Natur       = VAGONS.Natur;
                    dbEntry.Transit     = VAGONS.Transit;
                }
            }
            try
            {
                context_edit.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveVAGONS", eventID);
                return(-1);
            }
            return(dbEntry.id_vag);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Зачистить список вагонов в закладках прибытие и ожидают зачисления
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        public int ClearArrivingWagons(int day)
        {
            //TODO: ВЫПОЛНИТЬ чистку  в системе RailWay
            int res_ca = transfer_rc.ClearArrivingWagons(new int[] { 1, 3, 9, 10, 11, 14, 18, 19, 21, 22, 25, 26 }, day);
            int res_cp = transfer_rc.ClearPendingWagons(new int[] { 1, 3, 9, 10, 11, 14, 18, 19, 21, 22, 25, 26 }, day);

            LogRW.LogWarning(String.Format("Очищено – закладка прибытие: {0} строк, закладка ожидают зачисления: {1} строк.", res_ca, res_cp), this.eventID);
            return(res_ca + res_cp);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="Oracle_OutputSostav"></param>
        /// <returns></returns>
        public int SaveOracle_OutputSostav(Oracle_OutputSostav Oracle_OutputSostav)
        {
            Oracle_OutputSostav dbEntry;

            if (Oracle_OutputSostav.ID == 0)
            {
                dbEntry = new Oracle_OutputSostav()
                {
                    ID                = 0,
                    DateTime          = Oracle_OutputSostav.DateTime,
                    DocNum            = Oracle_OutputSostav.DocNum,
                    IDOrcStationFrom  = Oracle_OutputSostav.IDOrcStationFrom,
                    IDOrcStationOn    = Oracle_OutputSostav.IDOrcStationOn,
                    WayNumOn          = Oracle_OutputSostav.WayNumOn,
                    NaprOn            = Oracle_OutputSostav.NaprOn,
                    CountWagons       = Oracle_OutputSostav.CountWagons,
                    CountSetWagons    = Oracle_OutputSostav.CountSetWagons,
                    CountUpdareWagons = Oracle_OutputSostav.CountUpdareWagons,
                    Close             = Oracle_OutputSostav.Close,
                    Status            = Oracle_OutputSostav.Status,
                    Message           = Oracle_OutputSostav.Message
                };
                context.Oracle_OutputSostav.Add(dbEntry);
            }
            else
            {
                //int c = Oracle_OutputSostav.Message.Length;
                dbEntry = context.Oracle_OutputSostav.Find(Oracle_OutputSostav.ID);
                if (dbEntry != null)
                {
                    dbEntry.DateTime          = Oracle_OutputSostav.DateTime;
                    dbEntry.DocNum            = Oracle_OutputSostav.DocNum;
                    dbEntry.IDOrcStationFrom  = Oracle_OutputSostav.IDOrcStationFrom;
                    dbEntry.IDOrcStationOn    = Oracle_OutputSostav.IDOrcStationOn;
                    dbEntry.WayNumOn          = Oracle_OutputSostav.WayNumOn;
                    dbEntry.NaprOn            = Oracle_OutputSostav.NaprOn;
                    dbEntry.CountWagons       = Oracle_OutputSostav.CountWagons;
                    dbEntry.CountSetWagons    = Oracle_OutputSostav.CountSetWagons;
                    dbEntry.CountUpdareWagons = Oracle_OutputSostav.CountUpdareWagons;
                    dbEntry.Close             = Oracle_OutputSostav.Close;
                    dbEntry.Status            = Oracle_OutputSostav.Status;
                    dbEntry.Message           = Oracle_OutputSostav.Message;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveOracle_OutputSostav", eventID);
                return(-1);
            }
            return(dbEntry.ID);
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Получить список цехов
 /// </summary>
 /// <returns></returns>
 public IQueryable<SHOPS> GetShops() 
 {
     try { 
     return rep_sh.SHOPS;
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetShops", eventID);
         return null;
     }
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Получить перечень всех цехов
 /// </summary>
 /// <returns></returns>
 public IQueryable <PromCex> GetCex()
 {
     try
     {
         return(rep_pcx.PromCex);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetCex", eventID);
         return(null);
     }
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Показать все составы
 /// </summary>
 /// <returns></returns>
 public IQueryable <Oracle_OutputSostav> GetOutputSostav()
 {
     try
     {
         return(rep_os.Oracle_OutputSostav);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetOutputSostav", eventID);
         return(null);
     }
 }
Ejemplo n.º 25
0
 public int DeleteOracle_RulesCopy(int id_station_on, int id_station_from, typeOracleRules tp)
 {
     try
     {
         return(rep_rc.db.ExecuteSqlCommand("DELETE FROM RailWay.Oracle_RulesCopy WHERE IDStationOn=" + id_station_on.ToString() + " AND IDStationFrom = " + id_station_from.ToString() + " AND TypeCopy = " + ((int)tp).ToString()));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "DeleteRulesCopy(2)", eventID);
         return(-1);
     }
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Получить список всех правил
 /// </summary>
 /// <returns></returns>
 public IQueryable <Oracle_RulesCopy> GetRulesCopy()
 {
     try
     {
         return(this.rep_rc.Oracle_RulesCopy);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetRulesCopy", eventID);
         return(null);
     }
 }
Ejemplo n.º 27
0
 /// <summary>
 /// Удалить вагоны пренадлежащие натурному листу с датой
 /// </summary>
 /// <param name="natur_list"></param>
 /// <param name="dt_amkr"></param>
 /// <returns></returns>
 public int DeleteVagonsToNaturList(int natur_list, DateTime dt_amkr)
 {
     try
     {
         return(rep_vo.db.ExecuteSqlCommand("DELETE FROM dbo.VAGON_OPERATIONS WHERE n_natur=" + natur_list.ToString() + " AND Convert(char(19),dt_amkr) ='" + dt_amkr.ToString("yyyy-MM-dd HH:mm:ss") + "'"));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "DeleteVagonsToNaturList", eventID);
         return(-1);
     }
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Удалить вагон пренадлежащий составу перенесеному по данным металлург транс
 /// </summary>
 /// <param name="id_sostav"></param>
 /// <param name="num_vag"></param>
 /// <returns></returns>
 public int DeleteVagonsToInsertMT(int id_sostav, int num_vag)
 {
     try
     {
         return(rep_vo.db.ExecuteSqlCommand("DELETE FROM dbo.VAGON_OPERATIONS WHERE id_stat in (33,35) AND IDSostav = " + id_sostav.ToString() + " AND num_vagon = " + num_vag.ToString()));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "DeleteVagonsToInsertMT(2)", eventID);
         return(-1);
     }
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Удалить вагоны пренадлежащие составу перенесеному по данным металлург транс
 /// </summary>
 /// <param name="id_sostav"></param>
 /// <returns></returns>
 public int DeleteVagonsToInsertMT(int id_sostav)
 {
     try
     {
         return(rep_vo.db.ExecuteSqlCommand("DELETE FROM dbo.VAGON_OPERATIONS WHERE IDSostav=" + id_sostav.ToString()));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "DeleteVagonsToInsertMT(1)", eventID);
         return(-1);
     }
 }
Ejemplo n.º 30
0
 /// <summary>
 /// Получить все вагоны
 /// </summary>
 /// <returns></returns>
 public IQueryable <VAGON_OPERATIONS> GetVagonsOperations()
 {
     try
     {
         return(rep_vo.VAGON_OPERATIONS);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetVagonsOperations", eventID);
         return(null);
     }
 }