Beispiel #1
0
        /// <summary>
        ///  Основная загрузка данных
        /// </summary>
        public void loadVagManeuverTab()
        {
            try
            {
                view.visiblePerform = true;
                if (view.dgvForManColumnsCount == 0)
                {
                    view.makeDgvForManColumns();
                }
                if (view.dgvOnManColumnsCount == 0)
                {
                    view.makeDgvOnManColumns();
                }

                loadWays();

                view.loadSides(SideUtils.GetInstance().CbItems, SideUtils.GetInstance().CbNonSelected);
                loadLocomotives();

                view.changeLabelsSize();

                loadVagForMan();
                loadVagOnMan(); // загрузить вагоны на маневре (снятые с пути)

                view.changeColumnsPositions(getFirstVagCondName() == "для отправки на УЗ");
            }
            catch (Exception ex)
            {
                main.showErrorMessage(ex.Message);
            }
        }
Beispiel #2
0
        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) { }
        }
Beispiel #3
0
        /// <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) { }
        }
Beispiel #4
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);
            }
        }
Beispiel #5
0
        private void loadSidesToCb()
        {
            int selIdx = -1;

            if (view.getSentFrom.GetType().IsAssignableFrom(typeof(Station)))
            {
                selIdx = (int)neighbourStationsDB.getArrivSide(view.getStation, (Station)view.getSentFrom);
            }
            view.loadSides(SideUtils.GetInstance().CbItems, selIdx, SideUtils.GetInstance().CbNonSelected);
        }
Beispiel #6
0
        public static SideUtils GetInstance()
        {
            // для исключения возможности создания двух объектов
            // при многопоточном приложении
            if (sideUtils == null)
            {
                lock (typeof(SideUtils))
                {
                    if (sideUtils == null)
                    {
                        sideUtils = new SideUtils();
                    }
                }
            }

            return(sideUtils);
        }
Beispiel #7
0
        /// <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);
            }
        }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
        public void loadVagSendOthStTab()
        {
            try
            {
                view.setStatLabel(main.selectedStation.Name);
                if (view.dgvForSendColumnsCount == 0)
                {
                    view.makeDgvForSendColumns();
                }
                if (view.dgvToSendColumnsCount == 0)
                {
                    view.makeDgvToSendColumns();
                }

                loadWays();

                view.loadSides(SideUtils.GetInstance().CbItems, SideUtils.GetInstance().CbNonSelected);

                List <GruzFront> gfList = gruzFrontDB.getGruzFronts(main.selectedStation);
                view.loadGF(gfList, GruzFrontUtils.GetInstance().CbDisplay, GruzFrontUtils.GetInstance().CbValue, GruzFrontUtils.GetInstance().CbNonSelected);
                List <Shop> shopList = shopDB.getShops(main.selectedStation);
                view.loadShops(shopList, ShopUtils.GetInstance().CbDisplay, ShopUtils.GetInstance().CbValue, ShopUtils.GetInstance().CbNonSelected);
                view.showHideGfAndShopsOnForm(gfList.Count > 0, shopList.Count > 0);

                view.loadStationsTo(stationDB.getStations(main.selectedStation), StationUtils.GetInstance().CbDisplay, StationUtils.GetInstance().CbValue, StationUtils.GetInstance().CbNonSelected);
                loadLocomotives();

                loadVagForSending();
                loadVagToSend();

                view.changeColumnsPositions(getFirstVagCondName() == "для отправки на УЗ");
            }
            catch (Exception ex)
            {
                main.showErrorMessage(ex.Message);
            }
        }
Beispiel #10
0
        /// <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);
            }
        }
Beispiel #11
0
 private void loadInitialInfo()
 {
     view.bindStationsToSource(stationDB.getStations(), StationUtils.GetInstance().CbDisplay, StationUtils.GetInstance().CbValue);
     view.loadSides(SideUtils.GetInstance().CbItems);
     view.setNumSide((Side)Math.Abs((int)(view.selectedStation).Outer_side - 1));
 }