public void UpdateZustandsabschnittTrottoirModel(ZustandsabschnittdetailsTrottoirModel zustandsabschnittdetailsTrottoirModel) { //TODO: Use refleaction traslator ZustandsabschnittBase zustandsabschnittBase = GetZustandsabschnittBase(zustandsabschnittdetailsTrottoirModel.Id); zustandsabschnittBase.ZustandsindexTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirZustandsindex; zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId == null ? null : transactionScopeProvider.GetById <MassnahmenvorschlagKatalog>(zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId.Value); zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten; zustandsabschnittBase.DringlichkeitTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirDringlichkeit; zustandsabschnittBase.ZustandsindexTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirZustandsindex; zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId == null ? null : transactionScopeProvider.GetById <MassnahmenvorschlagKatalog>(zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId.Value); zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten; zustandsabschnittBase.DringlichkeitTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirDringlichkeit; //Update back the Kosten and GesamtKosten calculated field zustandsabschnittdetailsTrottoirModel.LinkeTrottoirGesamtKosten = zustandsabschnittBase.KostenTrottoirLinks; zustandsabschnittdetailsTrottoirModel.RechteTrottoirGesamtKosten = zustandsabschnittBase.KostenTrottoirRechts; zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten = GetKosten(zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks); zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten = GetKosten(zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts); UpdateZustandsabschnittBase(zustandsabschnittBase); }
public void ResetZustandsabschnittdetails(ZustandsabschnittBase zustandsabschnittBase) { zustandsabschnittBase.Zustandsindex = 0.0m; zustandsabschnittBase.Erfassungsmodus = ZustandsErfassungsmodus.Manuel; DeleteSchadenData(zustandsabschnittBase); UpdateZustandsabschnittBase(zustandsabschnittBase); }
protected override void UpdateZustandsabschnittBase(ZustandsabschnittBase zustandsabschnittBase) { if (((ZustandsabschnittGIS)zustandsabschnittBase).IsLocked) { throw new InvalidOperationException("ZustandsabschnittGIS is locked."); } transactionScopeProvider.Update((ZustandsabschnittGIS)zustandsabschnittBase); }
public void CopyMassnahmenvorschlagen(ZustandsabschnittBase copiedZustandsabschnitt, ZustandsabschnittBase zustandsabschnittToCopy) { if (zustandsabschnittToCopy.MassnahmenvorschlagFahrbahn != null) { copiedZustandsabschnitt.MassnahmenvorschlagFahrbahn = katalogCopyService.GetKatalogCopy <MassnahmenvorschlagKatalog>(zustandsabschnittToCopy.MassnahmenvorschlagFahrbahn.Id); } if (zustandsabschnittToCopy.MassnahmenvorschlagTrottoirLinks != null) { copiedZustandsabschnitt.MassnahmenvorschlagTrottoirLinks = katalogCopyService.GetKatalogCopy <MassnahmenvorschlagKatalog>(zustandsabschnittToCopy.MassnahmenvorschlagTrottoirLinks.Id); } if (zustandsabschnittToCopy.MassnahmenvorschlagTrottoirRechts != null) { copiedZustandsabschnitt.MassnahmenvorschlagTrottoirRechts = katalogCopyService.GetKatalogCopy <MassnahmenvorschlagKatalog>(zustandsabschnittToCopy.MassnahmenvorschlagTrottoirRechts.Id); } }
private AusgefuellteErfassungsformulareFuerOberflaechenschaedenPo CreatePo(ZustandsabschnittBase za, SchadengruppeMetadaten sgm, SchadendetailMetadaten sdm) { Schadendetail schadendetail = za.Schadendetails.SingleOrDefault(sd => sd.SchadendetailTyp == sdm.SchadendetailTyp); return(new AusgefuellteErfassungsformulareFuerOberflaechenschaedenPo { StrassenabschnittId = za.StrassenabschnittBase.Id, ZustandsabschnittId = za.Id, Strassenname = za.StrassenabschnittBase.Strassenname, ZustandsabschnittBezeichnungVon = za.BezeichnungVon, ZustandsabschnittBezeichnungBis = za.BezeichnungBis, Laenge = za.Laenge, FlaecheFahrbahn = za.StrassenabschnittBase.FlaecheFahrbahn, AufnahmeDatum = za.Aufnahmedatum, Aufnahmeteam = za.Aufnahmeteam, Wetter = za.Wetter, WetterBezeichnung = LocalizationService.GetLocalizedEnum(za.Wetter), Bemerkung = za.Bemerkung, SchadengruppeTyp = sgm.SchadengruppeTyp, SchadengruppeBezeichnung = localizationService.GetLocalizedEnum(sgm.SchadengruppeTyp), SchadengruppeReihung = sgm.Reihung, SchadendetailTyp = sdm.SchadendetailTyp, SchadendetailBezeichnung = localizationService.GetLocalizedEnum(sdm.SchadendetailTyp), SchadendetailReihung = sdm.Reihung, Gewicht = sgm.Gewicht, Bewertung = GetMatrix(schadendetail) * sgm.Gewicht, Matrix = GetMatrix(schadendetail), SchadenschwereS1 = GetSchadenschwere(schadendetail, SchadenschwereTyp.S1), SchadenschwereS2 = GetSchadenschwere(schadendetail, SchadenschwereTyp.S2), SchadenschwereS3 = GetSchadenschwere(schadendetail, SchadenschwereTyp.S3), SchadenausmassA0 = GetSchadenausmass(schadendetail, SchadenausmassTyp.A0), SchadenausmassA1 = GetSchadenausmass(schadendetail, SchadenausmassTyp.A1), SchadenausmassA2 = GetSchadenausmass(schadendetail, SchadenausmassTyp.A2), SchadenausmassA3 = GetSchadenausmass(schadendetail, SchadenausmassTyp.A3) }); }
private ZustandProZustandsabschnittPo CreatePo(ZustandsabschnittBase zustandsabschnittBase) { var result = CreatePoFromEntityWithCopyingMatchingProperties(zustandsabschnittBase); result.Strassenabschnittsnummer = zustandsabschnittBase.StrassenabschnittBase.Abschnittsnummer; result.StrasseBezeichnungVon = zustandsabschnittBase.StrassenabschnittBase.BezeichnungVon; result.StrasseBezeichnungBis = zustandsabschnittBase.StrassenabschnittBase.BezeichnungBis; result.Ortsbezeichnung = zustandsabschnittBase.StrassenabschnittBase.Ortsbezeichnung; result.BemerkungShort = zustandsabschnittBase.Bemerkung.TrimToMaxLength(serverConfigurationProvider.BemerkungMaxDisplayLength); result.BelagBezeichnung = LocalizationService.GetLocalizedEnum(zustandsabschnittBase.StrassenabschnittBase.Belag, LocalizationType.Short); result.BelastungskategorieBezeichnung = LocalizationService.GetLocalizedBelastungskategorieTyp(result.BelastungskategorieTyp); result.StrasseneigentuemerBezeichnung = LocalizationService.GetLocalizedEnum(zustandsabschnittBase.StrassenabschnittBase.Strasseneigentuemer); result.ZustandsindexTrottoirLinksBezeichnung = LocalizationService.GetLocalizedEnum(result.ZustandsindexTrottoirLinks); result.ZustandsindexTrottoirRechtsBezeichnung = LocalizationService.GetLocalizedEnum(result.ZustandsindexTrottoirRechts); return(result); }
private ZustandsabschnittdetailsModel CreateZustandsabschnittdetailsModel(ZustandsabschnittBase zustandsabschnittBase, ZustandsErfassungsmodus zustandsErfassungsmodus) { var zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel { Id = zustandsabschnittBase.Id, Erfassungsmodus = zustandsErfassungsmodus, Strassenname = zustandsabschnittBase.Strassenname, BelastungskategorieTyp = zustandsabschnittBase.BelastungskategorieTyp, BezeichnungVon = zustandsabschnittBase.BezeichnungVon, BezeichnungBis = zustandsabschnittBase.BezeichnungBis, Zustandsindex = zustandsabschnittBase.Zustandsindex, SchadengruppeModelList = new List <SchadengruppeModel>(), Dringlichkeit = zustandsabschnittBase.Dringlichkeit, MassnahmenvorschlagKatalog = zustandsabschnittBase.MassnahmenvorschlagKatalogId, KostenFahrbahn = zustandsabschnittBase.KostenFahrbahn, IsLocked = (zustandsabschnittBase is ZustandsabschnittGIS) && ((ZustandsabschnittGIS)zustandsabschnittBase).IsLocked, Belag = zustandsabschnittBase.Belag, }; if (zustandsabschnittBase.Erfassungsmodus == zustandsErfassungsmodus) { zustandsabschnittdetailsModel.IsDetailInitializiert = zustandsErfassungsmodus == ZustandsErfassungsmodus.Detail; zustandsabschnittdetailsModel.IsGrobInitializiert = zustandsErfassungsmodus == ZustandsErfassungsmodus.Grob; } else { zustandsabschnittdetailsModel.IsDetailInitializiert = false; zustandsabschnittdetailsModel.IsGrobInitializiert = false; } zustandsabschnittdetailsModel.Kosten = GetKosten(zustandsabschnittBase.MassnahmenvorschlagFahrbahn, zustandsabschnittBase.Kosten); if (zustandsErfassungsmodus != ZustandsErfassungsmodus.Manuel) { zustandsabschnittdetailsModel.SchadengruppeModelList = schadenMetadatenService .GetSchadengruppeMetadaten(zustandsabschnittBase.StrassenabschnittBase.Belag) .Select(s => CreateSchadengruppeModel(s, zustandsabschnittBase, zustandsErfassungsmodus)) .ToList(); } return(zustandsabschnittdetailsModel); }
public void UpdateFahrbahnZustand(FahrBahnZustandDTO zustand) { ZustandsabschnittBase zustandsabschnittBase = zustandsabschnittGISDTOService.GetZustandsabschnittById(zustand.ZustandsAbschnitt); DeleteSchadenData(zustandsabschnittBase); switch (zustand.Erfassungsmodus) { case ZustandsErfassungsmodus.Manuel: break; case ZustandsErfassungsmodus.Grob: GetSchadengruppen(zustand.Schadengruppen).ForEach(zustandsabschnittBase.AddSchadengruppe); break; case ZustandsErfassungsmodus.Detail: CreateSchadendetails(zustand.Schadendetails).ForEach(zustandsabschnittBase.AddSchadendetail); break; } zustandsabschnittBase.Erfassungsmodus = zustand.Erfassungsmodus; zustandsabschnittBase.Zustandsindex = zustand.Zustandsindex; transactionScopeProvider.Update((ZustandsabschnittGIS)zustandsabschnittBase); }
private MassnahmenvorschlagProZustandsabschnittPo CreatePo(ZustandsabschnittBase zustandsabschnittBase) { var result = CreatePoFromEntityWithCopyingMatchingProperties(zustandsabschnittBase); result.Strassenabschnittsnummer = zustandsabschnittBase.StrassenabschnittBase.Abschnittsnummer; result.StrasseBezeichnungVon = zustandsabschnittBase.StrassenabschnittBase.BezeichnungVon; result.StrasseBezeichnungBis = zustandsabschnittBase.StrassenabschnittBase.BezeichnungBis; result.Ortsbezeichnung = zustandsabschnittBase.StrassenabschnittBase.Ortsbezeichnung; result.BemerkungShort = zustandsabschnittBase.Bemerkung.TrimToMaxLength(serverConfigurationProvider.BemerkungMaxDisplayLength); result.StrasseneigentuemerBezeichnung = LocalizationService.GetLocalizedEnum(zustandsabschnittBase.StrassenabschnittBase.Strasseneigentuemer); result.ZustandsindexTrottoirLinksBezeichnung = LocalizationService.GetLocalizedEnum(result.ZustandsindexTrottoirLinks); result.ZustandsindexTrottoirRechtsBezeichnung = LocalizationService.GetLocalizedEnum(result.ZustandsindexTrottoirRechts); result.DringlichkeitFahrbahnBezeichnung = LocalizationService.GetLocalizedEnum(result.DringlichkeitFahrbahn); result.DringlichkeitTrottoirLinksBezeichnung = LocalizationService.GetLocalizedEnum(result.DringlichkeitTrottoirLinks); result.DringlichkeitTrottoirRechtsBezeichnung = LocalizationService.GetLocalizedEnum(result.DringlichkeitTrottoirRechts); result.MassnahmenvorschlagKatalogTypFahrbahnBezeichnung = result.MassnahmenvorschlagKatalogTypFahrbahn.HasText() ? LocalizationService.GetLocalizedMassnahmenvorschlagTyp(result.MassnahmenvorschlagKatalogTypFahrbahn) : null; result.MassnahmenvorschlagKatalogTypTrottoirLinksBezeichnung = result.MassnahmenvorschlagKatalogTypTrottoirLinks.HasText() ? LocalizationService.GetLocalizedMassnahmenvorschlagTyp(result.MassnahmenvorschlagKatalogTypTrottoirLinks) : null; result.MassnahmenvorschlagKatalogTypTrottoirRechtsBezeichnung = result.MassnahmenvorschlagKatalogTypTrottoirRechts.HasText() ? LocalizationService.GetLocalizedMassnahmenvorschlagTyp(result.MassnahmenvorschlagKatalogTypTrottoirRechts) : null; return(result); }
public ZustandsabschnittdetailsTrottoirModel GetZustandsabschnittTrottoirModel(Guid id) { //TODO: Use refleaction traslator ZustandsabschnittBase zustandsabschnittBase = GetZustandsabschnittBase(id); var zustandsabschnittdetailsTrottoirModel = new ZustandsabschnittdetailsTrottoirModel { Id = zustandsabschnittBase.Id, Strassenname = zustandsabschnittBase.Strassenname, BelastungskategorieTyp = zustandsabschnittBase.BelastungskategorieTyp, BezeichnungVon = zustandsabschnittBase.BezeichnungVon, BezeichnungBis = zustandsabschnittBase.BezeichnungBis, Trottoir = zustandsabschnittBase.StrassenabschnittBase.Trottoir, }; var massnahmenvorschlagTrottoirLinks = zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks; zustandsabschnittdetailsTrottoirModel.LinkeTrottoirDringlichkeit = zustandsabschnittBase.DringlichkeitTrottoirLinks; zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten = GetKosten(massnahmenvorschlagTrottoirLinks, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks); zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId = massnahmenvorschlagTrottoirLinks == null ? (Guid?)null : massnahmenvorschlagTrottoirLinks.Id; zustandsabschnittdetailsTrottoirModel.LinkeTrottoirGesamtKosten = zustandsabschnittBase.KostenTrottoirLinks; zustandsabschnittdetailsTrottoirModel.LinkeTrottoirZustandsindex = zustandsabschnittBase.ZustandsindexTrottoirLinks; var massnahmenvorschlagTrottoirRechts = zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts; zustandsabschnittdetailsTrottoirModel.RechteTrottoirDringlichkeit = zustandsabschnittBase.DringlichkeitTrottoirRechts; zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten = GetKosten(massnahmenvorschlagTrottoirRechts, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts); zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId = massnahmenvorschlagTrottoirRechts == null ? (Guid?)null : massnahmenvorschlagTrottoirRechts.Id; zustandsabschnittdetailsTrottoirModel.RechteTrottoirGesamtKosten = zustandsabschnittBase.KostenTrottoirRechts; zustandsabschnittdetailsTrottoirModel.RechteTrottoirZustandsindex = zustandsabschnittBase.ZustandsindexTrottoirRechts; return(zustandsabschnittdetailsTrottoirModel); }
protected override void UpdateZustandsabschnittBase(ZustandsabschnittBase zustandsabschnittBase) { transactionScopeProvider.Update((Zustandsabschnitt)zustandsabschnittBase); }
private IEnumerable <AusgefuellteErfassungsformulareFuerOberflaechenschaedenPo> GetPos(ZustandsabschnittBase za) { var pos = schadenMetadatenService .GetSchadengruppeMetadaten(za.StrassenabschnittBase.Belag) .SelectMany(sgm => sgm.Schadendetails.Select(sdm => CreatePo(za, sgm, sdm))) .OrderBy(po => po.SchadengruppeReihung) .ThenBy(po => po.SchadendetailReihung) .ToList(); var group = pos.GroupBy(po => po.SchadengruppeTyp, (key, g) => g.Max(po => po.Matrix) * (g.Any() ? g.First().Gewicht : 0)); decimal?schadensumme = group.Sum(); foreach (var po in pos) { po.Schadensumme = schadensumme; po.Zustandsindex = schadensumme.HasValue ? Math.Min(schadensumme.Value * 0.1m, 5.0m) : (decimal?)null; } return(pos); }
private void DeleteSchadenData(ZustandsabschnittBase zustandsabschnittBase) { zustandsabschnittBase.Schadengruppen.ForEach(transactionScopeProvider.Delete); zustandsabschnittBase.Schadendetails.ForEach(transactionScopeProvider.Delete); zustandsabschnittBase.DeleteSchadenFormData(); }
protected abstract void UpdateZustandsabschnittBase(ZustandsabschnittBase zustandsabschnittBase);
private SchadengruppeModel CreateSchadengruppeModel(SchadengruppeMetadaten schadengruppeMetadaten, ZustandsabschnittBase zustandsabschnittBase, ZustandsErfassungsmodus zustandsErfassungsmodus) { var schadengruppe = zustandsabschnittBase.Schadengruppen.SingleOrDefault(s => s.SchadengruppeTyp == schadengruppeMetadaten.SchadengruppeTyp); var schadengruppeModel = new SchadengruppeModel { Id = schadengruppe == null ? Guid.Empty : schadengruppe.Id, SchadenausmassTyp = schadengruppe == null ? SchadenausmassTyp.A0 : schadengruppe.SchadenausmassTyp, SchadenschwereTyp = schadengruppe == null ? SchadenschwereTyp.S1 : schadengruppe.SchadenschwereTyp, Gewicht = schadengruppeMetadaten.Gewicht, SchadengruppeTyp = schadengruppeMetadaten.SchadengruppeTyp, ZustandsabschnittId = zustandsabschnittBase.Id, SchadendetailModelList = new List <SchadendetailModel>() }; if (zustandsErfassungsmodus == ZustandsErfassungsmodus.Detail) { foreach (var schadendetailMetadaten in schadengruppeMetadaten.Schadendetails) { var schadendetail = zustandsabschnittBase.Schadendetails.SingleOrDefault(s => s.SchadendetailTyp == schadendetailMetadaten.SchadendetailTyp); var schadendetailModel = new SchadendetailModel { Id = schadendetail == null ? Guid.Empty : schadendetail.Id, SchadenausmassTyp = schadendetail == null ? SchadenausmassTyp.A0 : schadendetail.SchadenausmassTyp, SchadenschwereTyp = schadendetail == null ? SchadenschwereTyp.S1 : schadendetail.SchadenschwereTyp, ZustandsabschnittId = zustandsabschnittBase.Id, SchadendetailTyp = schadendetailMetadaten.SchadendetailTyp }; schadengruppeModel.SchadendetailModelList.Add(schadendetailModel); } } return(schadengruppeModel); }
private static void CleanUpTrottoirRechts(ZustandsabschnittBase z) { z.MassnahmenvorschlagTrottoirRechts = null; z.ZustandsindexTrottoirRechts = ZustandsindexTyp.Unbekannt; }