public static WagonInternalOperation SetOpenOperation(this WagonInternalRoutes wir, int id_operation, DateTime date_start, int?id_condition, int?id_loading_status, string locomotive1, string locomotive2, string note, string user) { WagonInternalOperation wio_new = null; if (wir != null && wir.close == null) { WagonInternalOperation wio_last = wir.GetLastOperation(); wio_new = new WagonInternalOperation() { id = 0, id_operation = id_operation, operation_start = date_start, id_condition = (id_condition != null ? (int)id_condition : (wio_last != null ? wio_last.id_condition : 0)), id_loading_status = (id_loading_status != null ? (int)id_loading_status : (wio_last != null ? wio_last.id_loading_status : 0)), locomotive1 = locomotive1, locomotive2 = locomotive2, note = note, create = DateTime.Now, create_user = user, parent_id = wio_last.CloseOperation(date_start, null, user) }; wir.WagonInternalOperation.Add(wio_new); } return(wio_new); }
public static WagonInternalOperation SetCloseOperation(this WagonInternalOperation wio, DateTime date_end, string note, string user) { if (wio != null && wio.close == null) { wio.CloseOperation(date_end, note, user); } return(wio); }
public static long?CloseOperation(this WagonInternalOperation wio, DateTime date_end, string note, string user) { if (wio == null) { return(null); } if (wio.close == null) { wio.operation_end = wio.operation_end == null ? date_end : wio.operation_end; wio.note = note != null ? note : wio.note; wio.close = date_end; wio.close_user = user; } return(wio.id); }
public IHttpActionResult GetWagonInternalOperationOfID(long id) { try { WagonInternalOperation wio = this.ef_ids .Context .Where(s => s.id == id) .ToList() .Select(c => c.GetWagonInternalOperation()).FirstOrDefault(); return(Ok(wio)); } catch (Exception e) { return(BadRequest(e.Message)); } }
/// <summary> /// Вагон на территории АМКР с операцией предявлен? /// </summary> /// <param name="context"></param> /// <param name="num"></param> /// <returns></returns> public static bool?isLockPresentOperation(this EFDbContext context, int num) { WagonInternalRoutes wir = context.GetLastWagon(num); if (wir == null) { return(null); } if (wir.close == null) { WagonInternalOperation wio = wir.GetLastOperation(); if (wio == null) { return(null); } return(wio.id_operation == 9 ? true : false); } else { return(false); } }
/// <summary> /// Правка разметки по прибытию /// </summary> /// <param name="context"></param> /// <param name="arr_cars"></param> /// <param name="id_condition"></param> /// <param name="id_type"></param> /// <param name="date_rem_vag"></param> /// <param name="user"></param> /// <returns></returns> public int OperationUpdateWagonMarking(ref EFDbContext context, ArrivalCars arr_cars, int id_condition, int?id_type, DateTime?date_rem_vag, string user) { try { // Проверка контекста if (context == null) { context = new EFDbContext(); } // Проверим и скорректируем пользователя if (String.IsNullOrWhiteSpace(user)) { user = System.Environment.UserDomainName + @"\" + System.Environment.UserName; } // Определим наличие вагона в прибытии if (arr_cars == null) { return((int)errors_base.not_arrival_cars_db); // Ошибка, нет записи вагона по прибытию } // if (arr_cars.id_arrival_uz_vagon == null) { return((int)errors_base.not_arrival_uz_vagon); //Ошибка, нет сылки на документ прибывшего вагона } // Получим контекст список документов на принятые вагоны EFArrival_UZ_Vagon ef_arr_uz_vag = new EFArrival_UZ_Vagon(context); // Получим запись документа принятого вагона Arrival_UZ_Vagon arr_uz_vag = ef_arr_uz_vag.Context.Where(v => v.id == arr_cars.id_arrival_uz_vagon).FirstOrDefault(); if (arr_uz_vag == null) { return((int)errors_base.not_arrival_uz_vagon); //Ошибка, нет записи документа прибывшего вагона } // Получим контекст справочник вагонов EFDirectory_Wagons ef_dir_wag = new EFDirectory_Wagons(context); // Получим запись вагона из справочника Directory_Wagons wagon = ef_dir_wag.Context.Where(w => w.num == arr_uz_vag.num).FirstOrDefault(); if (wagon == null) { return((int)errors_base.not_dir_wagon_of_db); // Указаного вагона нет в базе } // Получим контекст Внутренего перемещения EFWagonInternalRoutes ef_wir = new EFWagonInternalRoutes(context); WagonInternalRoutes wir = ef_wir.Context.Where(r => r.id_arrival_car == arr_cars.id).FirstOrDefault(); if (wir == null) { return((int)errors_base.not_wir_db); // Ошибка, нет записи внутренего перемещения вагона } // Найдем первую запись WagonInternalOperation first_wio = wir.WagonInternalOperation.Where(o => o.parent_id == null).OrderBy(o => o.id).FirstOrDefault(); if (first_wio == null) { return((int)errors_base.not_wio_db); // Ошибка, нет записи операций внутренего перемещения вагона } int id_condition_first = first_wio.id_condition; // Определим все записи List <WagonInternalOperation> list_wio = wir.WagonInternalOperation.OrderBy(o => o.id).ToList(); // Обновим годность по внутренему перемещению foreach (WagonInternalOperation wio in list_wio) { if (wio.id_condition == id_condition_first) { wio.id_condition = id_condition; } else { break; // Дрогая годность выйти изцикла } } ef_wir.Update(wir); // Запись документа есть правим тип и годность по прибытию arr_uz_vag.id_condition = id_condition; arr_uz_vag.id_type = id_type; ef_arr_uz_vag.Update(arr_uz_vag); // Запись справочника есть, правим дату ремонта wagon.date_rem_vag = date_rem_vag; ef_dir_wag.Update(wagon); return(1); } catch (Exception e) { e.ExceptionMethodLog(String.Format("OperationUpdateWagonMarking(context={0}, arr_cars={1}, id_condition ={2}, id_type={3}, date_rem_vag ={4}, user={5})", context, arr_cars, id_condition, id_type, date_rem_vag, user), servece_owner, this.eventID); return((int)errors_base.global);// Ошибка } }