Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Тест маневр вагонов на станции
 /// </summary>
 public void Test_Maneuvers_ManeuverCars()
 {
     Maneuvers ma  = new Maneuvers();
     int       res = ma.ManeuverCars(300, Side.Even);
 }