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); } }
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); } } }
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); } } }