public void onWaySelect() { try { loadVagForSending(); //view.clearVagToSendSelection(); view.clearStationsTo(StationUtils.GetInstance().CbNonSelected); view.setTrainNum(0); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.clearGF(GruzFrontUtils.GetInstance().CbNonSelected); view.clearShop(ShopUtils.GetInstance().CbNonSelected); view.clearLocoms(LocomotiveUtils.GetInstance().CbNonSelected); view.loadGF(gruzFrontDB.getGruzFronts(main.selectedStation), GruzFrontUtils.GetInstance().CbDisplay, GruzFrontUtils.GetInstance().CbValue, GruzFrontUtils.GetInstance().CbNonSelected); view.loadShops(shopDB.getShops(main.selectedStation), ShopUtils.GetInstance().CbDisplay, ShopUtils.GetInstance().CbValue, ShopUtils.GetInstance().CbNonSelected); loadVagToSend(); view.changeColumnsPositions(getFirstVagCondName() == "для отправки на УЗ"); } catch (Exception ex) { main.showErrorMessage(ex.Message); } try { main.wayIdxToSelect = view.listWays.IndexOf(view.selectedWay); } catch (ArgumentOutOfRangeException) { } }
/// <summary> /// Выбран новый путь /// </summary> public void onWayFromSelect() { try { maneuvers.CancelManeuverCarsOfSatation(main.selectedStation.ID); // Удалить все выбранные вагоны для маневра loadVagForMan(); view.clearWaysOnSelection(); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.setOtherStatLocomotives(false); view.clearLocom(LocomotiveUtils.GetInstance().CbNonSelected); loadVagOnMan(); view.changeColumnsPositions(getFirstVagCondName() == "для отправки на УЗ"); } catch (Exception ex) { main.showErrorMessage(ex.Message); } try { main.wayIdxToSelect = view.listWayFrom.IndexOf(view.selectedWayFrom); } catch (ArgumentOutOfRangeException) { } }
/// <summary> /// Выполнить маневр на станции /// </summary> public void performManeuver() { try { // проверка на выбор горловины if (view.selectedSide == Side.Empty) { main.showErrorMessage(SideUtils.GetInstance().CbNonSelected + "!"); //log.Error(SideUtils.GetInstance().CbNonSelected + "!"); return; } // проверка на выбор пути if (view.selectedWayTo == null) { main.showErrorMessage("Выберите путь для постановки вагонов!"); //log.Error("Выберите путь для постановки вагонов!"); return; } // проверка на превышение вместимости пути if (view.selectedWayFrom.Num != view.selectedWayTo.Num && view.selectedWayTo.Vag_amount + view.listVagOnMan.Count > view.selectedWayTo.Capacity) { if (!main.showQuestMessage("Количество вагонов превышает вместимость пути! Продолжить?")) { //log.Info("Количество вагонов превышает вместимость пути"); return; } } int locomNum = 0; if (view.selectedLocom != null) { locomNum = view.selectedLocom.Num; } view.visiblePerform = false; string mess_manevr = String.Format("Пользователь выполнил маневры на пути: {0}, станции: {1}", view.selectedWayFrom.NumName, main.selectedStation.Name); rwoperation.ManeuverCars(view.selectedWayFrom.ID, main.numSide, view.selectedLocom == null ? -1 : view.selectedLocom.Num); //TODO: Включил буфер операций по маневрам int res = maneuvers.ManeuverCars(view.selectedWayFrom.ID, main.numSide); mess_manevr.SaveLogEvents(res >= 0 ? String.Format("Переставлено {0} вагонов", res): "Error", service.DesktopRailCars); view.visiblePerform = true; view.clearVagOnMan(); view.clearWaysOnSelection(); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.clearLocom(LocomotiveUtils.GetInstance().CbNonSelected); loadWays(); loadVagForMan(); loadVagOnMan(); // загрузить вагоны на маневре (снятые с пути) view.visiblePerform = true; } catch (Exception ex) { view.visiblePerform = true; main.showErrorMessage(ex.Message); } }
public static LocomotiveUtils GetInstance() { // для исключения возможности создания двух объектов // при многопоточном приложении if (locomotiveUtils == null) { lock (typeof(LocomotiveUtils)) { if (locomotiveUtils == null) { locomotiveUtils = new LocomotiveUtils(); } } } return(locomotiveUtils); }
public void loadLocomotives() { try { List <Locomotive> list; if (view.otherStatLocomotives) { list = locomotiveDB.getLocomotives(); } else { list = locomotiveDB.getLocomotives(main.selectedStation); } view.loadLocomotives(list, LocomotiveUtils.GetInstance().CbDisplay, LocomotiveUtils.GetInstance().CbValue, LocomotiveUtils.GetInstance().CbNonSelected); } catch (Exception ex) { main.showErrorMessage(ex.Message); } }
/// <summary> /// Отменить выбрыные маневры /// </summary> public void cancelManeuver() { try { //if (vagManeuverDB.cancelManeuver(view.selectedWayFrom)) if (maneuvers.CancelManeuverCars(view.selectedWayFrom.ID) > 0) { view.clearColorAndDtFromWayMultipleVag(); view.clearVagOnMan(); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.clearLocom(LocomotiveUtils.GetInstance().CbNonSelected); view.clearWaysOnSelection(); view.clearVagForManSelection(); } } catch (Exception ex) { main.showErrorMessage(ex.Message); } }
public void cancelAllToSend() { try { if (vagSendOthStDB.cancelToSend(view.selectedWay)) { view.clearColorAndDtFromWayMultipleVag(); view.clearVagToSend(); view.clearStationsTo(StationUtils.GetInstance().CbNonSelected); view.setTrainNum(0); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.clearGF(GruzFrontUtils.GetInstance().CbNonSelected); view.clearShop(ShopUtils.GetInstance().CbNonSelected); view.clearLocoms(LocomotiveUtils.GetInstance().CbNonSelected); view.clearVagForSendSelection(); } } catch (Exception ex) { main.showErrorMessage(ex.Message); } }
/// <summary> /// Отправим вагоны на другую станцию /// </summary> public void performSending() { try { if (view.selectedStatAccept == null && view.selectedGF == null && view.selectedShop == null) { main.showErrorMessage(StationUtils.GetInstance().CbNonSelected + "!"); return; } if (view.selectedSide == Side.Empty && view.selectedGF == null && view.selectedShop == null) { main.showErrorMessage(SideUtils.GetInstance().CbNonSelected + "!"); return; } if (view.listToSend.Count == 0) { main.showErrorMessage("Выберите вагоны для отправки!"); return; } DateTime?dt_from_stat = DateTime.Now; if (view.selectedGF != null || view.selectedShop != null) { if (!checkVagOrder()) { return; } } string mess_send = String.Format("Пользователь отправил состав со станции {0}, пути {1}, на станцию {2}", main.selectedStation.Name, view.selectedWay.NumName, view.selectedStatAccept != null ? view.selectedStatAccept.Name : view.selectedGF != null ? "Вагоноопрокид : " + view.selectedGF.Name : view.selectedShop != null ? "Цех:" + view.selectedShop.Name : "?"); string status = ""; //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций отправки на другие станции rwoperation.DispatchCars(view.listToSend.Select(s => (int)s.num_vag).ToArray(), main.selectedStation.ID, view.selectedWay.ID, (view.selectedStatAccept != null ? (int?)view.selectedStatAccept.ID : null), view.selectedGF != null ? (int?)view.listToSend[0].St_gruz_front : null, view.selectedShop != null ? (int?)view.listToSend[0].St_shop : null, new int[] { view.listToSend[0].St_lock_locom1, view.listToSend[0].St_lock_locom2 }); foreach (VagSendOthSt item in view.listToSend) { if (view.selectedGF != null || view.selectedShop != null) { bool isShop = false; if (view.selectedShop != null) { isShop = true; } dt_from_stat = item.dt_from_stat; mainPresenter.changeLoadCond(item, isShop); } mainPresenter.changeConditionWayAfter(item, view.selectedWay); vagSendOthStDB.send(item.id_oper, item.cond.Id, dt_from_stat, DateTime.Now); status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}]; ", item.id_sostav, item.num_vag, item.dt_amkr); } mess_send.SaveLogEvents(status, service.DesktopRailCars); changeVagNumsWayFrom(); // изменить нумерацию вагонов на пути изъятия changeVagAmountOnWayAfterSending(); // изменить кол-во вагонов на путях после отправки //CommitTransaction / Rollback view.clearVagToSend(); view.clearStationsTo(StationUtils.GetInstance().CbNonSelected); view.setTrainNum(0); view.clearSide(SideUtils.GetInstance().CbNonSelected); view.loadGF(gruzFrontDB.getGruzFronts(main.selectedStation), GruzFrontUtils.GetInstance().CbDisplay, GruzFrontUtils.GetInstance().CbValue, GruzFrontUtils.GetInstance().CbNonSelected); view.loadShops(shopDB.getShops(main.selectedStation), ShopUtils.GetInstance().CbDisplay, ShopUtils.GetInstance().CbValue, ShopUtils.GetInstance().CbNonSelected); view.clearGF(GruzFrontUtils.GetInstance().CbNonSelected); view.clearShop(ShopUtils.GetInstance().CbNonSelected); view.clearLocoms(LocomotiveUtils.GetInstance().CbNonSelected); loadVagForSending(); } catch (Exception ex) { main.showErrorMessage(ex.Message); } }