/// <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); }
/// <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); } }
/// <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); } }
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); } }
/// <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; } }
/// <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); } }
/// <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); }
/// <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); } }
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: исправить возврат }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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: исправить возврат }
/// <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); } }
/// <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); }
/// <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); }
/// <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); }
/// <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; //} }
/// <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); }
/// <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); }
/// <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); }