Пример #1
0
        public void AngenommenDieFolgendenZustandsabschnitteGISExistieren(Table table)
        {
            var reader = GetObjectReaderConfigurationFor <ZustandsabschnittGIS>()
                         .PropertyAliasFor(e => e.ErfassungsPeriod, "Jahr")
                         .PropertyAliasFor(e => e.StrassenabschnittGIS, "Strassenname")
                         .ConverterFor(e => e.Mandant, (s, p) => new Mandant())
                         .ConverterFor(e => e.StrassenabschnittGIS, (s, p) => new StrassenabschnittGIS())
                         .ConverterFor(e => e.ErfassungsPeriod, (s, p) => new ErfassungsPeriod());

            var strassenabschnitts = entitesProErfassungsmodus[NetzErfassungsmodus.Gis][typeof(StrassenabschnittGIS)].Cast <StrassenabschnittGIS>().ToArray();

            foreach (var zustandabscnitt in reader.GetObjectReader().GetObjectListWithRow <ZustandsabschnittGIS>(table))
            {
                var sa = strassenabschnitts.Single(s =>
                                                   s.Mandant.MandantName == zustandabscnitt.Item1["Mandant"] &&
                                                   s.ErfassungsPeriod.Erfassungsjahr.Year.ToString() == zustandabscnitt.Item1["Jahr"] &&
                                                   s.Strassenname == zustandabscnitt.Item1["Strassenname"]
                                                   );
                zustandabscnitt.Item2.StrassenabschnittGIS = sa;

                var achsenReferenz = new AchsenReferenz();
                achsenReferenz.AchsenSegment = sa.ReferenzGruppe.AchsenReferenzen[0].AchsenSegment;
                var referenzGruppe = new ReferenzGruppe();
                zustandabscnitt.Item2.ReferenzGruppe = referenzGruppe;
                referenzGruppe.ZustandsabschnittGISList.Add(zustandabscnitt.Item2);
                achsenReferenz.ReferenzGruppe = referenzGruppe;
                referenzGruppe.AchsenReferenzen.Add(achsenReferenz);
                sa.Zustandsabschnitten.Add(zustandabscnitt.Item2);
            }
        }
Пример #2
0
        public void AngenommenDieFolgendenStrassenabschnitteGUSExistieren(Table table)
        {
            using (var scope = new NHibernateSpecflowScope())
            {
                foreach (var currentErfassungsperiod in scope.Session.Query <ErfassungsPeriod>())
                {
                    var achse = new Achse
                    {
                        VersionValidFrom = DateTime.Now,
                        ErfassungsPeriod = currentErfassungsperiod
                    };
                    var segment = new AchsenSegment();
                    segment.Achse            = achse;
                    segment.ErfassungsPeriod = currentErfassungsperiod;
                    achse.AchsenSegmente.Add(segment);
                    scope.Session.Save(segment);
                    scope.Session.Save(achse);
                }
            }

            var reader = GetObjectReaderConfigurationFor <StrassenabschnittGIS>()
                         .PropertyAliasFor(e => e.ErfassungsPeriod, "Jahr")
                         .ConverterFor(e => e.Belastungskategorie, (s, p) => ScenarioContextWrapper.CurrentScope.Session.Query <Belastungskategorie>().ToArray().Single(i => i.Typ == s))
                         .ConverterFor(e => e.Mandant, (s, p) => new Mandant {
                MandantName = s
            })
                         .ConverterFor(e => e.ErfassungsPeriod, (s, p) => new ErfassungsPeriod {
                Erfassungsjahr = new DateTime(int.Parse(s), 1, 1)
            });

            using (var nhScope = new NHibernateSpecflowScope())
            {
                entitesProErfassungsmodus[NetzErfassungsmodus.Gis][typeof(StrassenabschnittGIS)] = reader.GetObjectReader().GetObjectList <StrassenabschnittGIS>(table);
                foreach (StrassenabschnittGIS strassenabschnitt in entitesProErfassungsmodus[NetzErfassungsmodus.Gis][typeof(StrassenabschnittGIS)])
                {
                    var segment =
                        nhScope.Session.Query <AchsenSegment>().First(a => !a.ErfassungsPeriod.IsClosed &&
                                                                      a.ErfassungsPeriod.Mandant.MandantName == strassenabschnitt.Mandant.MandantName);
                    var achsenReferenz = new AchsenReferenz();
                    achsenReferenz.AchsenSegment = segment;
                    var referenzGruppe = new ReferenzGruppe();
                    strassenabschnitt.ReferenzGruppe = referenzGruppe;
                    referenzGruppe.StrassenabschnittGISList.Add(strassenabschnitt);
                    achsenReferenz.ReferenzGruppe = referenzGruppe;
                    referenzGruppe.AchsenReferenzen.Add(achsenReferenz);
                }
            }
        }
Пример #3
0
        public void AngenommenFurMandantExistierenFolgendeNetzinformationen(string mandant, Table table)
        {
            using (NHibernateSpecflowScope scope = new NHibernateSpecflowScope())
            {
                var strassenabschnittReader = GetStrassenabschnittGISReader();
                var strassenabschnitten     = strassenabschnittReader.GetObjectList <StrassenabschnittGIS>(table);
                ErfassungsPeriod currentErfassungsperiod = scope.GetCurrentErfassungsperiod(mandant);
                var achse = new Achse
                {
                    VersionValidFrom = DateTime.Now,
                    ErfassungsPeriod = currentErfassungsperiod
                };
                var segment = new AchsenSegment();
                segment.Achse            = achse;
                segment.ErfassungsPeriod = currentErfassungsperiod;
                achse.AchsenSegmente.Add(segment);
                scope.Session.Save(segment);
                scope.Session.Save(achse);

                foreach (var strassenabschnitt in strassenabschnitten)
                {
                    strassenabschnitt.Mandant = scope.GetMandant(mandant);

                    strassenabschnitt.ErfassungsPeriod = currentErfassungsperiod;
                    var achsenReferenz = new AchsenReferenz();
                    achsenReferenz.AchsenSegment = segment;
                    segment.AchsenReferenzen.Add(achsenReferenz);
                    scope.Session.Save(achsenReferenz);
                    var referenzGruppe = new ReferenzGruppe();
                    strassenabschnitt.ReferenzGruppe = referenzGruppe;
                    referenzGruppe.StrassenabschnittGISList.Add(strassenabschnitt);
                    achsenReferenz.ReferenzGruppe = referenzGruppe;
                    referenzGruppe.AchsenReferenzen.Add(achsenReferenz);
                    scope.Session.Save(referenzGruppe);
                    scope.Session.Save(strassenabschnitt);
                }
            }
        }