/// <summary> /// Поток обновления входящей поставки по вагонам /// </summary> private static void UpdateIncomingSupply() { service service = service.IDS_UpdateIncomingSupply; DateTime dt_start = DateTime.Now; try { int day_approach_limit = 30; string exceptions_cargo = "1;3;20;37;38;40"; // Код грузов для исключения из опроса обновления по ним входящей поставки List <int> list_exceptions_cargo = new List <int>(); //bool transfer_set_outgoing_wagon_of_kis = true; // считать настройки try { // Количество дней, ожидания вагона с подходов day_approach_limit = int.Parse(ConfigurationManager.AppSettings["SAP_IS_DayApproachLimit"].ToString()); exceptions_cargo = ConfigurationManager.AppSettings["SAP_IS_ExceptionsCargo"].ToString(); try { string[] list_str = exceptions_cargo.Split(';'); if (list_str != null && list_str.Length > 0) { foreach (string id in list_str) { list_exceptions_cargo.Add(int.Parse(id)); } } } catch (Exception ex) { ex.ExceptionLog(String.Format("Ошибка преобразования массива SAP_IS_ExceptionsCargo потока {0}, сервиса {1}", service.ToString(), servece_owner), servece_owner, eventID); } //transfer_set_outgoing_wagon_of_kis = bool.Parse(ConfigurationManager.AppSettings["TransferSetOutgoingWagonOfKis"].ToString()); } catch (Exception ex) { ex.ExceptionLog(String.Format("Ошибка выполнения считывания настроек потока {0}, сервиса {1}", service.ToString(), servece_owner), servece_owner, eventID); } int res_update = 0; lock (locker_sap_is) { IDS_SAP ids_sap = new IDS_SAP(service); ids_sap.Day_approach_limit = day_approach_limit; res_update = ids_sap.UpdateListIncomingSupply(list_exceptions_cargo, (System.Environment.UserDomainName + @"\" + System.Environment.UserName)); } TimeSpan ts = DateTime.Now - dt_start; string mes_service_exec = String.Format("Поток {0} сервиса {1} - время выполнения: {2}:{3}:{4}({5}), код выполнения: res_update:{6}.", service.ToString(), servece_owner, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, res_update); mes_service_exec.InformationLog(servece_owner, eventID); service.ServicesToLog(service.ToString() + " - выполнен.", dt_start, DateTime.Now, res_update); } catch (ThreadAbortException exc) { String.Format("Поток {0} сервиса {1} - прерван по событию ThreadAbortException={2}", service.ToString(), servece_owner, exc).WarningLog(servece_owner, eventID); } catch (Exception ex) { ex.ExceptionLog(String.Format("Ошибка выполнения цикла обновления, потока {0} сервис {1}", service.ToString(), servece_owner), servece_owner, eventID); service.ServicesToLog(service.ToString() + " - завершен с ошибкой.", dt_start, DateTime.Now, -1); } }
/// <summary> /// Поток обновления исходящей поставки по вагонам /// </summary> private static void UpdateOutgoingSupply() { service service = service.IDS_UpdateOutgoingSupply; DateTime dt_start = DateTime.Now; try { int res_update = 0; lock (locker_sap_os) { IDS_SAP ids_sap = new IDS_SAP(service); res_update = ids_sap.UpdateSAPOutgoingSupply(null); } TimeSpan ts = DateTime.Now - dt_start; string mes_service_exec = String.Format("Поток {0} сервиса {1} - время выполнения: {2}:{3}:{4}({5}), код выполнения: res_update:{6}.", service.ToString(), servece_owner, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, res_update); mes_service_exec.InformationLog(servece_owner, eventID); service.ServicesToLog(service.ToString() + " - выполнен.", dt_start, DateTime.Now, res_update); } catch (ThreadAbortException exc) { String.Format("Поток {0} сервиса {1} - прерван по событию ThreadAbortException={2}", service.ToString(), servece_owner, exc).WarningLog(servece_owner, eventID); } catch (Exception ex) { ex.ExceptionLog(String.Format("Ошибка выполнения цикла обновления, потока {0} сервис {1}", service.ToString(), servece_owner), servece_owner, eventID); service.ServicesToLog(service.ToString() + " - завершен с ошибкой.", dt_start, DateTime.Now, -1); } }