Exemple #1
0
 public BenchmarkingDataDetailCalculatorService(
     IMandantDetailsService mandantDetailsService,
     INetzSummarischDetailService netzSummarischDetailService,
     IBelastungskategorieService belastungskategorieService,
     IStrassenabschnittService strassenabschnittService,
     IStrassenabschnittGISService strassenabschnittGISService,
     ITransactionScopeProvider transactionScopeProvider,
     IWiederbeschaffungswertKatalogService wiederbeschaffungswertKatalogService,
     IZustandsabschnittService zustandsabschnittService,
     IZustandsabschnittGISService zustandsabschnittGISService,
     IRealisierteMassnahmeSummarsichService realisierteMassnahmeSummarsichService,
     IRealisierteMassnahmeService realisierteMassnahmeService,
     IRealisierteMassnahmeGISModelService realisierteMassnahmeGISModelService,
     ITimeService timeService
     )
 {
     this.mandantDetailsService                 = mandantDetailsService;
     this.netzSummarischDetailService           = netzSummarischDetailService;
     this.belastungskategorieService            = belastungskategorieService;
     this.strassenabschnittService              = strassenabschnittService;
     this.strassenabschnittGISService           = strassenabschnittGISService;
     this.transactionScopeProvider              = transactionScopeProvider;
     this.wiederbeschaffungswertKatalogService  = wiederbeschaffungswertKatalogService;
     this.zustandsabschnittService              = zustandsabschnittService;
     this.zustandsabschnittGISService           = zustandsabschnittGISService;
     this.realisierteMassnahmeSummarsichService = realisierteMassnahmeSummarsichService;
     this.realisierteMassnahmeService           = realisierteMassnahmeService;
     this.realisierteMassnahmeGISModelService   = realisierteMassnahmeGISModelService;
     this.timeService = timeService;
 }
 public RealisierteMassnahmenGISController(
     IRealisierteMassnahmeGISModelService realisierteMassnahmeGISModelService,
     IRealisierteMassnahmeGISOverviewModelService realisierteMassnahmeGISOverviewModelService,
     IMassnahmenvorschlagKatalogService massnahmenvorschlagKatalogService,
     IGeoJSONParseService geoJSONParseService,
     ILocalizationService localizationService,
     IBelastungskategorieService belastungskategorieService)
 {
     this.realisierteMassnahmeGISModelService         = realisierteMassnahmeGISModelService;
     this.realisierteMassnahmeGISOverviewModelService = realisierteMassnahmeGISOverviewModelService;
     this.massnahmenvorschlagKatalogService           = massnahmenvorschlagKatalogService;
     this.geoJSONParseService        = geoJSONParseService;
     this.localizationService        = localizationService;
     this.belastungskategorieService = belastungskategorieService;
 }
        public RealisierteMassnahmeGISModelValidator(IGeoJSONParseService geoJSONParseService, ILocalizationService localizationService, IRealisierteMassnahmeGISModelService realisierteMassnahmeGISModelService)
            : base(localizationService)
        {
            RuleForNotNullableString(k => k.Projektname);
            RuleForNullableString(k => k.BezeichnungVon);
            RuleForNullableString(k => k.BezeichnungBis);
            RuleForNullableDecimal(k => k.Laenge).NotEmpty();

            RuleForNullableLongString(k => k.Beschreibung);
            RuleForNullableString(k => k.LeitendeOrganisation);
            RuleFor(m => m.Strasseneigentuemer).NotNull();
            RuleFor(m => m.Belastungskategorie).ShouldNotBeEmpty(localizationService);

            RuleForNullableDecimal(s => s.KostenFahrbahn, 0);
            RuleForNullableDecimal(s => s.KostenTrottoirLinks, 0);
            RuleForNullableDecimal(s => s.KostenTrottoirRechts, 0);

            RuleForNullableDecimal(m => m.BreiteFahrbahn, 2)
            .NotNull()
            .When(m => m.KostenFahrbahn.HasValue);
            RuleForNullableDecimal(m => m.BreiteFahrbahn, 2)
            .NotNull()
            .When(m => (!m.BreiteTrottoirLinks.HasValue && !m.BreiteTrottoirRechts.HasValue) || m.MassnahmenvorschlagFahrbahn.HasValue)
            .WithMessage(localizationService.GetLocalizedError(ValidationError.RealisierteMassnahmeBreiteEmpty));
            RuleForNullableDecimal(m => m.BreiteTrottoirLinks, 2)
            .NotNull()
            .When(m => m.KostenTrottoirLinks.HasValue || (!m.BreiteTrottoirRechts.HasValue && m.MassnahmenvorschlagTrottoir.HasValue));
            RuleForNullableDecimal(m => m.BreiteTrottoirRechts, 2)
            .NotNull()
            .When(m => m.KostenTrottoirRechts.HasValue || (!m.BreiteTrottoirLinks.HasValue && m.MassnahmenvorschlagTrottoir.HasValue));

            RuleFor(m => m.MassnahmenvorschlagFahrbahn)
            .ShouldNotBeEmpty(localizationService)
            .When(m => m.BreiteFahrbahn.HasValue || m.KostenFahrbahn.HasValue);
            RuleFor(m => m.MassnahmenvorschlagTrottoir)
            .ShouldNotBeEmpty(localizationService)
            .When(m =>
                  (m.BreiteTrottoirLinks.HasValue || m.BreiteTrottoirRechts.HasValue) ||
                  (m.KostenTrottoirLinks.HasValue || m.KostenTrottoirRechts.HasValue));

            RuleForNullableDecimal(s => s.KostenGesamtprojekt, 0)
            .Must((model, value) => !value.HasValue || value >= model.SumKosten)
            .WithMessage(localizationService.GetLocalizedError(ValidationError.KostenGesamtprojektGraterThanSum));

            RuleFor(m => m.KostenFahrbahn)
            .ShouldNotBeEmpty(localizationService)
            .When(m => m.BreiteFahrbahn.HasValue || m.MassnahmenvorschlagFahrbahn.HasValue);
            RuleFor(m => m.KostenTrottoirLinks)
            .ShouldNotBeEmpty(localizationService)
            .When(m => m.BreiteTrottoirLinks.HasValue || (!m.KostenTrottoirRechts.HasValue && m.MassnahmenvorschlagTrottoir.HasValue));
            RuleFor(m => m.KostenTrottoirRechts)
            .ShouldNotBeEmpty(localizationService)
            .When(m => m.BreiteTrottoirRechts.HasValue || (!m.KostenTrottoirLinks.HasValue && m.MassnahmenvorschlagTrottoir.HasValue));

            RuleFor(m => m.FeatureGeoJSONString).Must(json => json.HasText()).WithMessage(localizationService.GetLocalizedError(ValidationError.GeometryNull)).NotNull().NotEmpty();
            RuleFor(m => m.FeatureGeoJSONString).Must(geoJSONParseService.isAbschnittGISModelBaseValid).When(m => m.FeatureGeoJSONString.HasText()).WithMessage(localizationService.GetLocalizedError(ValidationError.InvalidGeometry));
        }