public ZustandsabschnittdetailsModel GetDefaultZustandsabschnittdetailsModel(Guid strassenabschnittId, ZustandsErfassungsmodus zustandsErfassungsmodus) { var strassenabschnittBase = GetStrassenabschnittBase(strassenabschnittId); var zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel { Erfassungsmodus = zustandsErfassungsmodus, Strassenname = strassenabschnittBase.Strassenname, BelastungskategorieTyp = strassenabschnittBase.BelastungskategorieTyp, BezeichnungVon = strassenabschnittBase.BezeichnungVon, BezeichnungBis = strassenabschnittBase.BezeichnungBis, SchadengruppeModelList = new List <SchadengruppeModel>(), IsLocked = IsLocked(strassenabschnittBase), Belag = strassenabschnittBase.Belag, IsGrobInitializiert = false, IsDetailInitializiert = false }; if (zustandsErfassungsmodus != ZustandsErfassungsmodus.Manuel) { zustandsabschnittdetailsModel.SchadengruppeModelList = schadenMetadatenService .GetSchadengruppeMetadaten(strassenabschnittBase.Belag) .Select(s => CreateSchadengruppeModel(s, zustandsErfassungsmodus)) .ToList(); } return(zustandsabschnittdetailsModel); }
private List <AusgefuellteErfassungsformulareFuerOberflaechenschaedenPo> GetPos(BelagsTyp belagsTyp) { return(schadenMetadatenService .GetSchadengruppeMetadaten(belagsTyp) .SelectMany(sgm => sgm.Schadendetails.Select(sdm => CreatePo(sgm, sdm))) .OrderBy(po => po.SchadengruppeReihung) .ThenBy(po => po.SchadendetailReihung) .ToList()); }
private void ChangeToDetail() { var schadengruppeMetadatens = schadenMetadatenService.GetSchadengruppeMetadaten(belagsTyp); foreach (var detailGroupItemViewModel in DetailGroupItemViewModels) { detailGroupItemViewModel.PropertyChanged -= ItemViewModelOnPropertyChanged; } DetailGroupItemViewModels.Clear(); foreach (var schadengruppeMetadaten in schadengruppeMetadatens) { var detailGroupItemViewModel = new DetailGroupItemViewModel(schadengruppeMetadaten, schadendetailDtos); DetailGroupItemViewModels.Add(detailGroupItemViewModel); detailGroupItemViewModel.PropertyChanged += ItemViewModelOnPropertyChanged; } RefreshCalculations(); }
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); }