コード例 #1
0
        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);
        }
コード例 #2
0
 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());
 }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
        }