コード例 #1
0
 /// <summary>
 /// Подключение к серверу SFTP
 /// </summary>
 /// <returns></returns>
 public bool Connect()
 {
     this.client_sftp          = new Sftp(this.connect_SFTP.Host, this.connect_SFTP.User);
     this.client_sftp.Password = this.connect_SFTP.PSW;
     try
     {
         this.client_sftp.Connect(this.connect_SFTP.Port);
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[SFTPClient.Connect] :Ошибка подключения sftp-клиента, Host {0} (источник: {1}, № {2}, описание:  {3})", this.connect_SFTP.Host, e.Source, e.HResult, e.Message), this.eventID);
         return(false);
     }
     return(true);
 }
コード例 #2
0
 /// <summary>
 /// обновить позицию вагона в составе
 /// </summary>
 /// <param name="idsostav"></param>
 /// <param name="numvag"></param>
 /// <param name="position"></param>
 /// <returns></returns>
 public int UpdateSAPIncSupplyPosition(int idsostav, int numvag, int position)
 {
     try
     {
         SqlParameter id  = new SqlParameter("@idsostav", idsostav);
         SqlParameter num = new SqlParameter("@num", numvag);
         SqlParameter pos = new SqlParameter("@pos", position);
         return(rep_sap.db.ExecuteSqlCommand("UPDATE RailWay.SAP_Inc_Supply set Position=@pos where IDMTSostav = @idsostav and CarriageNumber = @num", pos, id, num));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, String.Format("UpdateSAPIncSupplyPosition состав: {0}, вагон: {1}, позиция: {1} ", idsostav, numvag, position), eventID);
         return(-1);
     }
 }
コード例 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="id_mtsostav"></param>
 /// <param name="Consignees"></param>
 /// <param name="station"></param>
 /// <returns></returns>
 public int CountMTList(int id_mtsostav, int[] Consignees)
 {
     try
     {
         string Consignees_s = Consignees.IntsToString(",");
         string sql          = "SELECT * FROM RailWay.MTList where IDMTSostav = " + id_mtsostav.ToString() + " and [Consignee] in(" + Consignees_s + ")";
         var    list         = rep_MT.db.SqlQuery <MTList>(sql);
         return(list != null?list.Count() : 0);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "CountMTList(2)", eventID);
         return(0);
     }
 }
コード例 #4
0
        private int dayControllingWagons;   // кол. дней контроля изменения справочника.

        public SynchronizeKIS()
        {
            try
            {
                Settings set = new Settings();
                set.Get_Project(this.className, this.classDescription, true); // Проверим наличие проекта
                this.activeWagons         = (bool)set.GetBoolSettingConfigurationManager("activeSynchronizeWagons", this.className, true);
                this.dayControllingWagons = (int)set.GetIntSettingConfigurationManager("dayControllingWagons", this.className, true);
            }
            catch (Exception e)
            {
                error_settings = true;
                LogRW.LogError(String.Format("[SynchronizeKIS]: Ошибка выполнения инициализации classa {0} (источник: {1}, № {2}, описание:  {3})", this.className, e.Source, e.HResult, e.Message), this.eventID);
            }
        }
コード例 #5
0
 /// <summary>
 /// Инициализация сервиса (проверка данных в БД и создание settings)
 /// </summary>
 public void InitializeService()
 {
     try
     {
         Settings set = new Settings();
         set.InsertTypeValue(); // Обновим типы
         // Проверим наличие секций проекты
         set.Get_Project(this.ServiceName, this.ServiceDescription, true);
         this.Interval = (int)set.GetIntSettingConfigurationManager("Interval", this.ServiceName, true);
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[RWServiceArrival.InitializeService] : Ошибка выполнения инициализации сервиса {0}  (источник: {1}, № {2}, описание:  {3})", this.ServiceName, e.Source, e.HResult, e.Message), this.eventID);
         return;
     }
 }
コード例 #6
0
 /// <summary>
 /// Проставить натурный лист на вагоны пришедшие по КИС
 /// </summary>
 /// <param name="natur"></param>
 /// <param name="num"></param>
 /// <param name="dt"></param>
 /// <returns></returns>
 public int SetNaturToMTList(int natur, int num, DateTime dt, int day)
 {
     try
     {
         string sql = "UPDATE RailWay.MTList " +
                      "SET NaturList = " + natur.ToString() +
                      " where NaturList is null and CarriageNumber = " + num.ToString() +
                      " and (DateOperation >= convert(datetime,DATEADD(day," + (day * -1).ToString() + ", '" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "'),120) and DateOperation < convert(datetime,'" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "',120))";
         return(rep_MT.db.ExecuteSqlCommand(sql));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "SetNaturToMTList", eventID);
         return(-1);
     }
 }
コード例 #7
0
 /// <summary>
 /// Получить номер вагона
 /// </summary>
 /// <param name="file"></param>
 /// <returns></returns>
 protected int GetTrainNumberToXml(string file)
 {
     try
     {
         XDocument doc = XDocument.Load(file);
         foreach (XElement element in doc.Element("NewDataSet").Elements("Table"))
         {
             return((int)element.Element("TrainNumber"));
         }
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[MT.GetTrainNumberToXml] :Ошибка определения номера поезда файл:{0}. Подробно: (Источник:{1}, Код:{2}, Описание:{3})", file, e.Source, e.HResult, e.Message), this.eventID);
     }
     return((int)tMTOperation.not);
 }
コード例 #8
0
 /// <summary>
 /// Вернуть список id составов MT где есть указаные вагоны отсорт
 /// </summary>
 /// <param name="num_wag"></param>
 /// <param name="dt"></param>
 /// <returns></returns>
 public int[] GetIDSostavToWagons(string num_wag, DateTime dt)
 {
     try
     {
         string[] wag_s = num_wag.Split(';');
         string   sql   = "SELECT IDMTSostav FROM RailWay.MTList " +
                          "WHERE (CarriageNumber IN (" + num_wag.Replace(";", ",").Remove(num_wag.Length - 1) + ")) AND (DateOperation <= CONVERT(datetime, '" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "', 120)) " +
                          "GROUP BY DateOperation, IDMTSostav " +
                          "ORDER BY Count(IDMTSostav) DESC, DateOperation DESC";
         return(rep_MT.db.SqlQuery <int>(sql).ToArray());
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "GetIDSostavToWagons", eventID);
         return(null);
     }
 }
コード例 #9
0
        public int Copy()
        {
            if (error_settings)
            {
                LogRW.LogWarning("Выполнение метода CopyingInlandKIS.Copy() - отменено, ошибка нет данных Settings.", this.eventID);
                return(0);
            }
            if (!this.activeCopyInput)
            {
                LogRW.LogWarning(String.Format("Копирование по внутреним станциям, вагонов по прибытию, classa:{0} - отключено. (Settings:activeCopyInput).", this.className), this.eventID);
            }
            if (!this.activeCopyOutput)
            {
                LogRW.LogWarning(String.Format("Копирование по внутреним станциям, вагонов по отправке, classa:{0} - отключено. (Settings:activeCopyOutput).", this.className), this.eventID);
            }


            KIS_Transfer kist = new KIS_Transfer();

            LogRW.LogInformation(String.Format("Сервис копирования по внутреним станциям системамы КИС в систему RailWay :{0} - запущен", this.className), this.eventID);
            try
            {
                //TODO: перенести необходимые переменные
                if (activeCopyInput)
                {
                    // Перенесем или обновим информацию о составах защедших на АМКР по системе КИС
                    int result_ci = kist.CopyInputSostavToRailway(this.dayControllingCopyInput_ins);
                    int result_pi = kist.PutInputSostavToStation();
                }
                if (activeCopyOutput)
                {
                    int result_co = kist.CopyOutputSostavToRailway(this.dayControllingCopyOutput_ins);
                    int result_po = kist.PutOutputSostavToStation();
                }
                if (activeDelete)
                {
                    int res_del = kist.ClearArrivingWagons(dayControllingDelete);
                }
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[CopyingInlandKIS.Copy]: Общая ошибка копирования по внутреним станциям системамы КИС в систему RailWay (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
            }
            return(0); // TODO: исправить возврат
        }
コード例 #10
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="ReferenceCountry"></param>
        /// <returns></returns>
        public int SaveReferenceStation(ReferenceStation ReferenceStation)
        {
            ReferenceStation dbEntry;

            if (ReferenceStation.IDStation == 0)
            {
                dbEntry = new ReferenceStation()
                {
                    IDStation        = 0,
                    Name             = ReferenceStation.Name,
                    Station          = ReferenceStation.Station,
                    InternalRailroad = ReferenceStation.InternalRailroad,
                    IR_Abbr          = ReferenceStation.IR_Abbr,
                    NameNetwork      = ReferenceStation.NameNetwork,
                    NN_Abbr          = ReferenceStation.NN_Abbr,
                    CodeCS           = ReferenceStation.CodeCS
                };
                context.ReferenceStation.Add(dbEntry);
            }
            else
            {
                dbEntry = context.ReferenceStation.Find(ReferenceStation.IDStation);
                if (dbEntry != null)
                {
                    dbEntry.Name             = ReferenceStation.Name;
                    dbEntry.Station          = ReferenceStation.Station;
                    dbEntry.InternalRailroad = ReferenceStation.InternalRailroad;
                    dbEntry.IR_Abbr          = ReferenceStation.IR_Abbr;
                    dbEntry.NameNetwork      = ReferenceStation.NameNetwork;
                    dbEntry.NN_Abbr          = ReferenceStation.NN_Abbr;
                    dbEntry.CodeCS           = ReferenceStation.CodeCS;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveReferenceStation", eventID);
                return(-1);
            }
            return(dbEntry.IDStation);
        }
コード例 #11
0
        /// <summary>
        /// Добавить строку ISO3166
        /// </summary>
        /// <param name="Code_Country"></param>
        /// <returns></returns>
        public int SaveCode_Country(Code_Country Code_Country)
        {
            Code_Country dbEntry;

            if (Code_Country.ID == 0)
            {
                dbEntry = new Code_Country()
                {
                    ID         = 0,
                    Country    = Code_Country.Country,
                    Alpha_2    = Code_Country.Alpha_2,
                    Alpha_3    = Code_Country.Alpha_3,
                    Code       = Code_Country.Code,
                    ISO3166_2  = Code_Country.ISO3166_2,
                    IDState    = Code_Country.IDState,
                    CodeEurope = Code_Country.CodeEurope
                };
                context.Code_Country.Add(dbEntry);
            }
            else
            {
                dbEntry = context.Code_Country.Find(Code_Country.ID);
                if (dbEntry != null)
                {
                    dbEntry.Country    = Code_Country.Country;
                    dbEntry.Alpha_2    = Code_Country.Alpha_2;
                    dbEntry.Alpha_3    = Code_Country.Alpha_3;
                    dbEntry.Code       = Code_Country.Code;
                    dbEntry.ISO3166_2  = Code_Country.ISO3166_2;
                    dbEntry.IDState    = Code_Country.IDState;
                    dbEntry.CodeEurope = Code_Country.CodeEurope;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveCode_Country", eventID);
                return(-1);
            }
            return(dbEntry.ID);
        }
コード例 #12
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="IDRulesCopy"></param>
        /// <returns></returns>
        public Oracle_RulesCopy DeleteOracle_RulesCopy(int IDRulesCopy)
        {
            Oracle_RulesCopy dbEntry = context.Oracle_RulesCopy.Find(IDRulesCopy);

            if (dbEntry != null)
            {
                context.Oracle_RulesCopy.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteOracle_RulesCopy", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #13
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="id_shop"></param>
        /// <returns></returns>
        public SHOPS DeleteSHOPS(int id_shop)
        {
            SHOPS dbEntry = context.SHOPS.Find(id_shop);

            if (dbEntry != null)
            {
                context.SHOPS.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "SaveSHOPS", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #14
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="id_tupik"></param>
        /// <returns></returns>
        public TUPIKI DeleteTUPIKI(int id_tupik)
        {
            TUPIKI dbEntry = context.TUPIKI.Find(id_tupik);

            if (dbEntry != null)
            {
                context.TUPIKI.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteTUPIKI", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #15
0
        public SAPIncSupply DeleteSAPIncSupply(int id)
        {
            SAPIncSupply dbEntry = context.SAPIncSupply.Find(id);

            if (dbEntry != null)
            {
                context.SAPIncSupply.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteSAPIncSupply", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #16
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="id_way"></param>
        /// <returns></returns>
        public VAGON_OPERATIONS DeleteVAGONOPERATIONS(int id_oper)
        {
            VAGON_OPERATIONS dbEntry = context.VAGON_OPERATIONS.Find(id_oper);

            if (dbEntry != null)
            {
                context.VAGON_OPERATIONS.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteVAGONOPERATIONS", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #17
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="IDOrcSostav"></param>
        /// <returns></returns>
        public Oracle_ArrivalSostav DeleteOracle_ArrivalSostav(int IDOrcSostav)
        {
            Oracle_ArrivalSostav dbEntry = context.Oracle_ArrivalSostav.Find(IDOrcSostav);

            if (dbEntry != null)
            {
                context.Oracle_ArrivalSostav.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteOracle_ArrivalSostav", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #18
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="IDCountry"></param>
        /// <returns></returns>
        public ReferenceCountry DeleteReferenceCountry(int IDCountry)
        {
            ReferenceCountry dbEntry = context.ReferenceCountry.Find(IDCountry);

            if (dbEntry != null)
            {
                context.ReferenceCountry.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteReferenceCountry", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
コード例 #19
0
 /// <summary>
 /// Вернуть количество вагонов в составе
 /// </summary>
 /// <param name="id_mtsostav"></param>
 /// <param name="Consignees"></param>
 /// <param name="station"></param>
 /// <returns></returns>
 public int CountMTList(int id_mtsostav, int[] Consignees, int station)
 {
     try
     {
         string Consignees_s = "";
         foreach (int c in Consignees)
         {
             Consignees_s += c.ToString() + ",";
         }
         string sql  = "SELECT * FROM RailWay.MTList where IDMTSostav = " + id_mtsostav.ToString() + " and [Consignee] in(" + Consignees_s.Remove(Consignees_s.Length - 1) + ") and [IDStation] = " + station.ToString();
         var    list = rep_MT.db.SqlQuery <MTList>(sql);
         return(list != null?list.Count() : 0);
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "CountMTList(2)", eventID);
         return(0);
     }
 }
コード例 #20
0
 /// <summary>
 /// Обновить информацию по вагону принятому в ручну на станции
 /// </summary>
 /// <param name="id_sostav"></param>
 /// <param name="num_vagon"></param>
 /// <param name="dt_amkr"></param>
 /// <param name="id_cond"></param>
 /// <param name="natur"></param>
 /// <returns></returns>
 public int UpdateVagon(int id_sostav, int num_vagon, int[] idstation_amkr, DateTime dt_amkr, int?id_cond, int natur)
 {
     try
     {
         string idstation_amkr_s = idstation_amkr.IntsToString(",");
         string sql = "update  dbo.VAGON_OPERATIONS " +
                      "set dt_amkr = Convert(datetime,'" + dt_amkr.ToString("yyyy-MM-dd HH:mm:ss") + "',120)" +
                      ", id_cond = " + (id_cond != null ? id_cond.ToString() : "null ") +
                      ", n_natur = " + natur.ToString() +
                      " where IDSostav = " + id_sostav.ToString() +
                      " and num_vagon= " + num_vagon.ToString() +
                      " and id_stat in(" + idstation_amkr_s + ")";
         return(rep_vo.db.ExecuteSqlCommand(sql));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "UpdateVagon(2)", eventID);
         return(-1);
     }
 }
コード例 #21
0
 /// <summary>
 /// Обновить информацию по вагону поставленному на путь или принятому вручную.
 /// </summary>
 /// <param name="dt_amkr"></param>
 /// <param name="num_vagon"></param>
 /// <param name="natur"></param>
 /// <param name="idstation_amkr"></param>
 /// <param name="id_gruz"></param>
 /// <param name="id_shop"></param>
 /// <param name="id_cond"></param>
 /// <returns></returns>
 public int UpdateVagon(DateTime dt_amkr, int num_vagon, int natur, int[] idstation_amkr, int id_gruz, int id_shop, int?id_cond)
 {
     try
     {
         string idstation_amkr_s = idstation_amkr.IntsToString(",");
         string sql = "update  dbo.VAGON_OPERATIONS " +
                      "set id_gruz = " + id_gruz.ToString() + ", id_gruz_amkr = " + id_gruz.ToString() + ", id_shop_gruz_for = " + id_shop.ToString() +
                      ", id_cond = " + (id_cond != null ? id_cond.ToString() : "null ") +
                      " where n_natur= " + natur.ToString() +
                      " and num_vagon= " + num_vagon.ToString() +
                      " and convert(smalldatetime,dt_amkr,120) ='" + dt_amkr.ToString("yyyy-MM-dd HH:mm:ss") + "'" +
                      " and id_stat in(" + idstation_amkr_s + ")";
         return(rep_vo.db.ExecuteSqlCommand(sql));
     }
     catch (Exception e)
     {
         LogRW.LogError(e, "UpdateVagon(1)", eventID);
         return(-1);
     }
 }
コード例 #22
0
        /// <summary>
        /// Перенести вагоны
        /// </summary>
        /// <returns></returns>
        public int Transfer()
        {
            if (!this.active)
            {
                LogRW.LogWarning(String.Format("Сервис переноса данных из КИС :{0} - отключен. (Settings:activeArrivalKIS).", this.className), this.eventID);
                return(0);
            }
            if (error_settings)
            {
                LogRW.LogWarning("Выполнение метода ArrivalKIS.Transfer() - отменено, ошибка нет данных Settings.", this.eventID);
                return(0);
            }
            KIS_Transfer kist = new KIS_Transfer();

            LogRW.LogInformation(String.Format("Сервис переноса данных из КИС в БД RailWay :{0} - запущен, режим копирования: {1}", this.className, this.mode), this.eventID);
            try
            {
                // Перенесем или обновим информацию о составах защедших на АМКР по системе КИС
                int result_cs = kist.CopyArrivalSostavToRailway(this.dayControllingAddNatur);
                int res_pc    = 0;
                switch (this.mode)
                {
                //case 0:
                //    // Полное копирование из КИС
                //    res_pc = kist.PutCarsToStations(0);
                //    break;
                case 1:
                    // Обновление данных скопированных из МТ с переносом из прибытия на станцию
                    res_pc = kist.PutCarsToStations(1);
                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[ArrivalKIS.Transfer]: Общая ошибка переноса данных из БД КИС (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
            }
            return(0); // TODO: исправить возврат
        }
コード例 #23
0
        /// <summary>
        /// Выбрать строки с указанием направления
        /// </summary>
        /// <returns></returns>
        public IQueryable <PromSostav> GetPromSostav(bool direction)
        {
            try
            {
                string sql = "SELECT N_NATUR,D_DD,D_MM,D_YY,T_HH,T_MI,K_ST,N_PUT,NAPR,P_OT,V_P,K_ST_OTPR,K_ST_PR,N_VED_PR,N_SOST_OT,N_SOST_PR,DAT_VVOD FROM PROM.SOSTAV ";
                if (direction)
                {
                    sql += "WHERE (P_OT = 1 and K_ST_PR is not null)";
                }
                else
                {
                    sql += "WHERE ( P_OT = 0 and K_ST_OTPR is not null)";
                }

                return(rep_ps.db.SqlQuery <PromSostav>(sql).AsQueryable());
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "GetPromSostav(1)", eventID);
                return(null);
            }
        }
コード例 #24
0
        /// <summary>
        /// Перенос вагонов
        /// </summary>
        public int Transfer()
        {
            MT mettrans;

            if (error_settings)
            {
                LogRW.LogWarning("Выполнение метода ArrivalMT.Transfer() - отменено, ошибка нет данных Settings.", this.eventID);
                return(0);
            }
            LogRW.LogInformation(String.Format("Сервис переноса вагонов из МТ в БД Railway :{0} - запущен", this.className), this.eventID);
            try
            {
                SFTPClient csftp = new SFTPClient(connect_SFTP);
                csftp.fromPathsHost  = fromPathHost;
                csftp.FileFiltrHost  = FileFiltrHost;
                csftp.toDirPath      = toDirPath;
                csftp.toTMPDirPath   = toTMPDirPath;
                csftp.DeleteFileHost = DeleteFile;
                csftp.RewriteFile    = RewriteFile;
                csftp.CopyToDir();
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[ArrivalMT.Transfer]: Общая ошибка выполнения копирования из SFTP (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
            }
            try
            {
                mettrans                     = new MT();
                mettrans.FromPath            = toTMPDirPath;
                mettrans.DeleteFile          = DeleteFile;
                mettrans.DayMonitoringTrains = dayMonitoringTrains;
                return(mettrans.Transfer());
            }
            catch (Exception e)
            {
                LogRW.LogError(String.Format("[ArrivalMT.Transfer]: Общая ошибка переноса xml-файлов в БД Railway (источник: {0}, № {1}, описание:  {2})", e.Source, e.HResult, e.Message), this.eventID);
            }
            return(0);
        }
コード例 #25
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="SHOPS"></param>
        /// <returns></returns>
        public int SaveSHOPS(SHOPS SHOPS)
        {
            SHOPS dbEntry;

            if (SHOPS.id_shop == 0)
            {
                dbEntry = new SHOPS()
                {
                    id_shop   = SHOPS.id_shop,
                    name      = SHOPS.name,
                    name_full = SHOPS.name_full,
                    id_stat   = SHOPS.id_stat,
                    id_ora    = SHOPS.id_ora
                };
                context.SHOPS.Add(dbEntry);
            }
            else
            {
                dbEntry = context.SHOPS.Find(SHOPS.id_shop);
                if (dbEntry != null)
                {
                    dbEntry.name      = SHOPS.name;
                    dbEntry.name_full = SHOPS.name_full;
                    dbEntry.id_stat   = SHOPS.id_stat;
                    dbEntry.id_ora    = SHOPS.id_ora;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveSHOPS", eventID);
                return(-1);
            }
            return(dbEntry.id_shop);
        }
コード例 #26
0
 /// <summary>
 /// Добавим вагоны для состава
 /// </summary>
 /// <param name="new_id"></param>
 /// <param name="file"></param>
 /// <param name="countCopy"></param>
 /// <param name="countError"></param>
 /// <returns></returns>
 protected bool SaveWagons(int new_id, string file, ref int countCopy, ref int countError)
 {
     try
     {
         int count_wagons = 0;
         if (new_id > 0)
         {
             // Переносим вагоны
             count_wagons = TransferXMLToMTlist(file, new_id);
             if (count_wagons > 0)
             {
                 countCopy++;
             }
             if (count_wagons == -1)
             {
                 countError++;
             }                                         // Счетчик ошибок при переносе
         }
         if (new_id == -1)
         {
             countError++;
         }                                   // Счетчик ошибок при переносе
         // Поставим вагоны на путь
         if (count_wagons > 0 & new_id > 0)
         {
             ArrivalToRailWay(new_id);
         }
         if (count_wagons > 0 & new_id > 0)
         {
             return(true);
         }
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[MT.SaveWagons] :Ошибка добавления вагонов в БД RailWay, сотав :{0}. Подробно: (Источник:{1}, Код:{2}, Описание:{3})", new_id, e.Source, e.HResult, e.Message), this.eventID);
     }
     return(false);
 }
コード例 #27
0
        /// <summary>
        /// Удалить вагоны пренадлежащие документу прибытия на станцию
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public int DeleteVagonsToDocInput(int doc)
        {
            //TODO: Прибить все вагоны которые перенесены по прибытию и отпраквлены далее
            int delete = 0;

            try
            {
                IQueryable <VAGON_OPERATIONS> list = GetVagonsOperationsToDocInputSostav(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("DeleteVagonsToDocInput(doc:{0})", doc), eventID);
                return(-1);
            }
            return(delete);
            //try
            //{
            //    return rep_vo.db.ExecuteSqlCommand("DELETE FROM dbo.VAGON_OPERATIONS WHERE id_ora_23_temp=" + doc.ToString());
            //}
            //catch (Exception e)
            //{
            //    LogRW.LogError(e, "DeleteVagonsToDocInput", eventID);
            //    return -1;
            //}
        }
コード例 #28
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="oracle_RulesCopy"></param>
        /// <returns></returns>
        public int SaveOracle_RulesCopy(Oracle_RulesCopy oracle_RulesCopy)
        {
            Oracle_RulesCopy dbEntry;

            if (oracle_RulesCopy.IDRulesCopy == 0)
            {
                dbEntry = new Oracle_RulesCopy()
                {
                    IDRulesCopy   = 0,
                    IDStationOn   = oracle_RulesCopy.IDStationOn,
                    IDStationFrom = oracle_RulesCopy.IDStationFrom,
                    TypeCopy      = oracle_RulesCopy.TypeCopy
                };
                context.Oracle_RulesCopy.Add(dbEntry);
            }
            else
            {
                dbEntry = context.Oracle_RulesCopy.Find(oracle_RulesCopy.IDRulesCopy);
                if (dbEntry != null)
                {
                    dbEntry.IDStationOn   = oracle_RulesCopy.IDStationOn;
                    dbEntry.IDStationFrom = oracle_RulesCopy.IDStationFrom;
                    dbEntry.TypeCopy      = oracle_RulesCopy.TypeCopy;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveOracle_RulesCopy", eventID);
                return(-1);
            }
            return(dbEntry.IDRulesCopy);
        }
コード例 #29
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="ReferenceCargo"></param>
        /// <returns></returns>
        public int SaveReferenceCargo(ReferenceCargo ReferenceCargo)
        {
            ReferenceCargo dbEntry;

            if (ReferenceCargo.IDCargo == 0)
            {
                dbEntry = new ReferenceCargo()
                {
                    IDCargo  = 0,
                    Name     = ReferenceCargo.Name,
                    NameFull = ReferenceCargo.NameFull,
                    ETSNG    = ReferenceCargo.ETSNG
                };
                context.ReferenceCargo.Add(dbEntry);
            }
            else
            {
                dbEntry = context.ReferenceCargo.Find(ReferenceCargo.IDCargo);
                if (dbEntry != null)
                {
                    dbEntry.Name     = ReferenceCargo.Name;
                    dbEntry.NameFull = ReferenceCargo.NameFull;
                    dbEntry.ETSNG    = ReferenceCargo.ETSNG;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveReferenceCargo", eventID);
                return(-1);
            }
            return(dbEntry.IDCargo);
        }
コード例 #30
0
        /// <summary>
        /// Коррекция данных МТ с САП с указаного периода
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public int CorrectionMT_SAP(DateTime dt)
        {
            List <trSostav> list_sostav = CompareMT_SAP(dt);
            int             counts      = 0;

            foreach (trSostav sostav in list_sostav)
            {
                try
                {
                    sapis.DeleteSAPIncSupplySostav(sostav.id);
                    if (sostav.ParentID != null)
                    {
                        sapis.DeleteSAPIncSupplySostav((int)sostav.ParentID);
                    }
                    int rec_sap = sap_transfer.PutInSapIncomingSupply(sostav);
                    counts++;
                }
                catch (Exception e)
                {
                    LogRW.LogError(String.Format("[MT.CorrectionMT_SAP] :Ошибка коррекции справочника SAP входящие поставки, состав: {0}. Подробно: (источник: {1}, № {2}, описание:  {3})", sostav.id, e.Source, e.HResult, e.Message), this.eventID);
                }
            }
            return(counts);
        }