public ActionResult ArbeitsmodusWechseln(ArbeitsmodusModel arbeitsmodusModel)
        {
            if (ModelState.IsValid)
            {
                arbeitsmodusService.SaveArbeitsmodusModel(arbeitsmodusModel);
                ViewBag.IsAchsenEditEnabled = mandantDetailsService.GetCurrentMandantDetails().IsAchsenEditEnabled;
                return(View("ArbeitsmodusWechselnSuccessfull", arbeitsmodusModel));
            }

            return(View("Index", arbeitsmodusModel));
        }
Пример #2
0
        public ErfassungsabschlussModelValidator(
            ILocalizationService localizationService,
            IHistorizationService historizationService,
            IStrassenabschnittGISService strassenabschnittGISService,
            IMandantDetailsService mandantDetailsService)
            : base(localizationService)
        {
            var availabledDates = historizationService.GetAvailableErfassungsabschlussen().Select(x => x.AbschlussDate).ToList();

            RuleFor(m => m.AbschlussDate).ExclusiveBetween(availabledDates.First().AddDays(-1), availabledDates.Last().AddDays(1));
            RuleFor(m => m.AbschlussDate).Must((m, p) => !strassenabschnittGISService.AreThereLockedStrassenabschnitte()).WithMessage(localizationService.GetLocalizedError(ValidationError.JahresAbschlussStrassenabschnittLocked));
            RuleFor(m => m.AbschlussDate).Must((m, p) => mandantDetailsService.GetCurrentMandantDetails().IsCompleted);
        }
        private ErfassungsabschlussModel CreateErfassungsabschlussModel()
        {
            var availableErfassungsabschlussen = historizationService.GetAvailableErfassungsabschlussen().OrderBy(ea => ea.AbschlussDate);
            var erfassungsabschlussModel       = availableErfassungsabschlussen.FirstOrDefault();
            var dropDownItemList = availableErfassungsabschlussen
                                   .ToDropDownItemList(ea => ea.AbschlussDate.Year, ea => ea.AbschlussDate, erfassungsabschlussModel);

            ViewBag.ErfassungsabschlussModellen = dropDownItemList;

            ErfassungsPeriod currentErfassungsperiod = historizationService.GetCurrentErfassungsperiod();

            bool isThereMissingZustandsabschnitte;

            switch (currentErfassungsperiod.NetzErfassungsmodus)
            {
            case NetzErfassungsmodus.Summarisch:
                isThereMissingZustandsabschnitte = false;
                break;

            case NetzErfassungsmodus.Tabellarisch:
                isThereMissingZustandsabschnitte = strassenabschnittService.IsThereMissingZustandsabschnitte();
                break;

            case NetzErfassungsmodus.Gis:
                isThereMissingZustandsabschnitte = strassenabschnittGisService.IsThereMissingZustandsabschnitte();
                break;

            default:
                throw new ArgumentOutOfRangeException("NetzErfassungsmodus");
            }

            ViewBag.IsThereMissingZustandsabschnitte = isThereMissingZustandsabschnitte;
            ViewBag.IsMandantenDetailsCompleted      = mandantDetailsService.GetCurrentMandantDetails().IsCompleted;
            ViewBag.AreThereLockedStrassenabschnitte = strassenabschnittGisService.AreThereLockedStrassenabschnitte();
            ViewBag.NetzErfassungsmodus        = currentErfassungsperiod.NetzErfassungsmodus;
            ViewBag.LastClosedErfassungsPeriod = erfassungsPeriodService.GetNewestClosedErfassungsPeriod();
            ViewBag.IsLastClosedYear           = erfassungsPeriodService.GetClosedErfassungsPeriodModels().Count == 1;

            if (currentErfassungsperiod.NetzErfassungsmodus == NetzErfassungsmodus.Gis)
            {
                ViewBag.ApproxWaitTime = GisHistorizationTimeEstimate.GetApproxHistorizationTime(achsenSegmentService.GetCurrentEntities().Count());
            }

            return(erfassungsabschlussModel);
        }
Пример #4
0
        private List <MenuItemModel> GetMenuItemModels()
        {
            if (httpRequestCacheService.MenuItemModels != null)
            {
                return(httpRequestCacheService.MenuItemModels);
            }

            var applicationMode = securityService.GetCurrentApplicationMode();
            NetzErfassungsmodus netzErfassungsmodus = NetzErfassungsmodus.Summarisch;

            if (applicationMode != ApplicationMode.NoMandants)
            {
                netzErfassungsmodus = applicationMode == ApplicationMode.Application ?
                                      NetzErfassungsmodus.Tabellarisch : erfassungsPeriodService.GetCurrentErfassungsPeriod().NetzErfassungsmodus;
            }

            var isAchenEditEnabled = false;

            if (applicationMode == ApplicationMode.Mandant)
            {
                isAchenEditEnabled = mandantDetailsService.GetCurrentMandantDetails().IsAchsenEditEnabled;
            }

            var menuBuilder = new MenuItemModelBuilder(permissionService, serverConfigurationProvider, netzErfassungsmodus);

            var allModus      = new[] { NetzErfassungsmodus.Gis, NetzErfassungsmodus.Summarisch, NetzErfassungsmodus.Tabellarisch };
            var strassenModus = new[] { NetzErfassungsmodus.Gis, NetzErfassungsmodus.Tabellarisch };

            menuBuilder.AddMenuItem <HomeController>(allModus);

            menuBuilder.AddMenuItem <StrassenmengeUndZustandController>(NetzErfassungsmodus.Summarisch);
            menuBuilder.AddMenuItem <NetzdefinitionUndStrassenabschnittController>(NetzErfassungsmodus.Tabellarisch);


            if (netzErfassungsmodus == NetzErfassungsmodus.Gis)
            {
                menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Strassennetz,
                                                    builder =>
                {
                    builder.AddMenuItem <NetzdefinitionUndStrassenabschnittGISController>(NetzErfassungsmodus.Gis);
                    if (isAchenEditEnabled)
                    {
                        builder.AddMenuItem <AchsenController>(NetzErfassungsmodus.Gis);
                    }
                });
            }


            menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Zustand,
                                                builder =>
            {
                builder.AddMenuItem <ZustaendeUndMassnahmenvorschlaegeController>(NetzErfassungsmodus.Tabellarisch);
                builder.AddMenuItem <ZustaendeUndMassnahmenvorschlaegeGISController>(NetzErfassungsmodus.Gis);
                builder.AddMenuItem <InspektionsroutenGISController>(NetzErfassungsmodus.Gis);
            });

            menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Massnahmen,
                                                builder =>
            {
                builder.AddMenuItem <MassnahmenvorschlaegeAndererTeilsystemeController>(NetzErfassungsmodus.Gis);
                builder.AddMenuItem <KoordinierteMassnahmenController>(NetzErfassungsmodus.Gis);
                builder.AddMenuItem <RealisierteMassnahmenSummarischController>(NetzErfassungsmodus.Summarisch);
                builder.AddMenuItem <RealisierteMassnahmenGISController>(NetzErfassungsmodus.Gis);
                builder.AddMenuItem <RealisierteMassnahmenController>(NetzErfassungsmodus.Tabellarisch);
            });

            menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen,
                                                builder =>
            {
                builder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen_Invertar,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <MengeProBelastungskategorieController>(allModus);
                    subBuilder.AddMenuItem <MengeProBelastungskategorieGrafischeController>(allModus);
                    subBuilder.AddMenuItem <StrassenabschnitteListeController>(NetzErfassungsmodus.Tabellarisch);
                    subBuilder.AddMenuItem <StrassenabschnitteListeGISController>(NetzErfassungsmodus.Gis);
                });

                builder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen_WiederbeschaffungswertUndWertverlust,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <WiederbeschaffungswertUndWertverlustProBelastungskategorieController>(allModus);
                    subBuilder.AddMenuItem <WiederbeschaffungswertUndWertverlustGrafischeController>(allModus);
                    subBuilder.AddMenuItem <WiederbeschaffungswertUndWertverlustProStrassenabschnittController>(strassenModus);
                    subBuilder.AddMenuItem <WiederbeschaffungswertUndWertverlustProJahrGrafischeController>(allModus);
                });

                builder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen_ZustandUndMassnahmenvorschläge,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <ZustandsspiegelProBelastungskategorieGrafischeController>(strassenModus);
                    subBuilder.AddMenuItem <ZustandsspiegelProJahrGrafischeController>(strassenModus);
                    subBuilder.AddMenuItem <ZustandProZustandsabschnittController>(NetzErfassungsmodus.Tabellarisch);
                    subBuilder.AddMenuItem <ZustandProZustandsabschnittGISController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <MassnahmenvorschlagProZustandsabschnittController>(NetzErfassungsmodus.Tabellarisch);
                    subBuilder.AddMenuItem <MassnahmenvorschlagProZustandsabschnittGISController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <AusgefuellteErfassungsformulareFuerOberflaechenschaedenController>(strassenModus);
                    subBuilder.AddMenuItem <ErfassungsformulareFuerOberflaechenschaedenController>(allModus);
                    subBuilder.AddMenuItem <ListeDerInspektionsroutenController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <StrassenabschnitteListeOhneInspektionsrouteController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <NochNichtInspizierteStrassenabschnitteController>(strassenModus);
                });

                builder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen_MassnahmenDerTeilsystemeUndKoordinierteMassnahmen,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <EineListeVonMassnahmenGegliedertNachTeilsystemenController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <EineListeVonKoordiniertenMassnahmenController>(NetzErfassungsmodus.Gis);
                });

                builder.AddPlaceHolderMenuItems(MenuLocalization.Auswertungen_Fortschreibung,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <EineListeVonRealisiertenMassnahmenGeordnetNachJahrenSummarischController>(NetzErfassungsmodus.Summarisch);
                    subBuilder.AddMenuItem <EineListeVonRealisiertenMassnahmenGeordnetNachJahrenController>(NetzErfassungsmodus.Tabellarisch);
                    subBuilder.AddMenuItem <EineListeVonRealisiertenMassnahmenGeordnetNachJahrenGISController>(NetzErfassungsmodus.Gis);
                    subBuilder.AddMenuItem <RealisiertenMassnahmenWertverlustZustandsindexProJahrGrafischeController>(allModus);
                });
                builder.AddMenuItem <GISExportController>(NetzErfassungsmodus.Gis);
            });

            menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Benchmarking,
                                                builder =>
            {
                builder.AddMenuItem <BenchmarkauswertungInventarkennwertenController>(allModus);
                builder.AddMenuItem <BenchmarkauswertungZustandskennwertenController>(allModus);
                builder.AddMenuItem <BenchmarkauswertungKennwertenRealisiertenMassnahmenController>(allModus);
            });

            menuBuilder.AddPlaceHolderMenuItems(MenuLocalization.Administration,
                                                builder =>
            {
                builder.AddMenuItem <KenngroessenFruehererJahreSummarischController>(NetzErfassungsmodus.Summarisch);
                builder.AddMenuItem <KenngroessenFruehererJahreController>(NetzErfassungsmodus.Tabellarisch);
                builder.AddMenuItem <KenngroessenFruehererJahreGISController>(NetzErfassungsmodus.Gis);
                if (!isAchenEditEnabled)
                {
                    builder.AddMenuItem <AchsenupdateController>(NetzErfassungsmodus.Gis);
                }
                builder.AddMenuItem <AchsenEditModeController>(allModus);
                builder.AddMenuItem <CheckOutRueckgaengigController>(NetzErfassungsmodus.Gis);
                builder.AddMenuItem <ErfassungsPeriodAbschlussController>(allModus);
                builder.AddPlaceHolderMenuItems(MenuLocalization.Administration_SystemparameterPflegen,
                                                subBuilder =>
                {
                    subBuilder.AddMenuItem <AnwendungsLoggingsController>(allModus);
                    subBuilder.AddMenuItem <WiederbeschaffungswertAndAlterungsbeiwertController>(allModus);
                    subBuilder.AddMenuItem <MassnahmenvorschlagController>(allModus);
                });
                builder.AddMenuItem <ArbeitsmodusWechselnController>(allModus);
                builder.AddMenuItem <MandantDetailsController>(allModus);
                builder.AddMenuItem <MandantLogoController>(allModus);
                builder.AddMenuItem <AndereBenutzerrollenEinnehmenController>(allModus);
                builder.AddMenuItem <EreignisLogController>(allModus);
                builder.AddMenuItem <GlobalResourceController>(allModus);
                builder.AddMenuItem <HelpSystemController>(allModus);
            });



            httpRequestCacheService.MenuItemModels = menuBuilder.MenuItemModels;

            return(menuBuilder.MenuItemModels);
        }