/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Vermietung MaterialAnVermietungAnfügen(int VermietID, int MaschinenartID) { try { // Transaktion, nur erfolgreich wenn Platzanzahl reduziert und Buchung erstellt! using (System.Transactions.TransactionScope t = new System.Transactions.TransactionScope()) { // hier erfolgen Änderungen in Datenbanken über zwei Methoden der Datenzugriffsschicht Vermietung vermietung = Maschinenarten_Verwaltungsklasse.AddMaschinenartZuVermitung(MaschinenartID, VermietID); if (vermietung != null) { return(null); } // Transaktion erfolgreich abschließen t.Complete(); // Buchungscode zurückgeben return(vermietung); } } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Vermietung NeueVermietungAnKunden(int KundenID, DateTime Vermitbegin, DateTime Vermitende) { try { // Transaktion, nur erfolgreich wenn Platzanzahl reduziert und Buchung erstellt! using (System.Transactions.TransactionScope t = new System.Transactions.TransactionScope()) { // hier erfolgen Änderungen in Datenbanken über zwei Methoden der Datenzugriffsschicht Vermietung vermietung = Vermitungs_Verwaltungsklasse.NeueVermietung(Vermitbegin, Vermitende); if (vermietung != null) { return(null); } // Kunde zu Vermietung hinzufügen vermietung = Kunden_Verwaltungsklasse.AddKundeZuVermitung(KundenID, vermietung.Vermiet_ID); if (vermietung != null) { return(null); } // Transaktion erfolgreich abschließen t.Complete(); // Buchungscode zurückgeben return(vermietung); } } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Vermietung NeueVermietung(DateTime Vermitbegin, DateTime Vermitende) { try { Vermietung DieseVermietung = new Vermietung(); DieseVermietung.Vermietbegin = Vermitbegin; DieseVermietung.Vermietende = Vermitende; DieseVermietung.Gesamtpreis = 0; modell.VermietungslisteSatz.AddObject(DieseVermietung); try { modell.SaveChanges(); } catch (Exception ex) { Console.WriteLine(DieseVermietung.ToString() + " | " + ex.Message.ToString()); return(null); } return(DieseVermietung); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
private void Add() { Vermietung newVermietung = new Vermietung(); Vermietungs.Add(newVermietung); walkthrowGridUpdaterMethod(); }
/// <summary> /// Änderungen an einer Liste von Passagieren speichern /// Die neu hinzugefügten Passagiere muss die Routine wieder zurückgeben, da die IDs für die /// neuen Passagiere erst beim Speichern von der Datenbank vergeben werden /// </summary> public List <Vermietung> SaveVermitungenSet(List <Vermietung> VermietungsDatensatz, out string Statistik) { //https://blogs.msdn.microsoft.com/diego/2010/10/05/self-tracking-entities-applychanges-and-duplicate-entities/ // Änderungen für jeden einzelnen Passagier übernehmen try { foreach (Vermietung p in VermietungsDatensatz) { if (p.ChangeTracker.State == ObjectState.Modified) { var abfrage = from Vermietung in modell.VermietungslisteSatz.Include("Maschinenart").Include("Kunde") select Vermietung; Vermietung current = abfrage.Where(o => o.Vermiet_ID == p.Vermiet_ID).First(); CrossCutting.Mietmaschinendatenbank_DataClasses.Vermietung.Clone(p, current); modell.VermietungslisteSatz.ApplyChanges(current); current.ChangeTracker.State = ObjectState.Unchanged; } else if (p.ChangeTracker.State == ObjectState.Deleted) { var abfrage = from Vermietung in modell.VermietungslisteSatz.Include("Maschinenart").Include("Kunde") select Vermietung; Vermietung current = abfrage.Where(o => o.Vermiet_ID == p.Vermiet_ID).First(); current.MarkAsDeleted(); modell.VermietungslisteSatz.DeleteObject(current); } else if (p.ChangeTracker.State == ObjectState.Added) { modell.VermietungslisteSatz.ApplyChanges(p); } } } catch { Console.Write("Context is up to date"); } // Statistik der Änderungen zusammenstellen Statistik = ""; Statistik += "Geändert: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Modified).Count(); Statistik += " Neu: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added).Count(); Statistik += " Gelöscht: " + modell.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Deleted).Count(); // Neue Datensätze merken, da diese nach Speichern zurückgegeben werden müssen (haben dann erst ihre IDs!) List <Vermietung> NeueVermitungen = VermietungsDatensatz.Where(f => f.ChangeTracker.State == ObjectState.Added).ToList(); // Änderungen speichern modell.SaveChanges(); modell.Refresh(System.Data.Objects.RefreshMode.StoreWins, modell.VermietungslisteSatz); // Statistik der Änderungen zurückgeben return(NeueVermitungen); }
/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Vermietung AddKundeZuVermitung(int KundenID, int VermitID) { try { Vermietung dieseVermietung = modell.VermietungslisteSatz.Where(f => f.Vermiet_ID == VermitID).SingleOrDefault(); Kunde kunde = GetKundeById(KundenID); dieseVermietung.Kunde.Kunden_ID = KundenID; modell.SaveChanges(); return(dieseVermietung); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Vermietung AddMaschinenartZuVermitung(int MaschinenartID, int VermitID) { try { Vermietung dieseVermietung = modell.VermietungslisteSatz.Where(f => f.Vermiet_ID == VermitID).SingleOrDefault(); Maschinenart maschine = GetMaschinenarteById(MaschinenartID); dieseVermietung.Maschinenart.Add(maschine); modell.SaveChanges(); return(dieseVermietung); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
public void CreateDemoDaten() { var kundenFaker = new Faker <Kunde>() .RuleFor(x => x.Name, x => x.Name.FullName()) .RuleFor(x => x.GebDatum, x => x.Date.Past(40)); var k1 = kundenFaker.Generate(); var k2 = kundenFaker.Generate(); var k3 = kundenFaker.Generate(); var standortFaker = new Faker <Standort>() .RuleFor(x => x.Bezeichnung, x => x.Address.City()); var s1 = standortFaker.Generate(); var s2 = standortFaker.Generate(); var af = new Faker <Auto>(); af.RuleFor(x => x.Farbe, f => f.Commerce.Color()); af.RuleFor(x => x.Hersteller, f => f.Vehicle.Manufacturer()); af.RuleFor(x => x.Modell, f => f.Vehicle.Model()); var a1 = af.Generate(); var a2 = af.Generate(); var a3 = af.Generate(); var vm1 = new Vermietung() { StartStandort = s1, EndeStandort = s2, Auto = a1, Kunde = k1, Start = DateTime.Now.AddDays(-15), Ende = DateTime.Now.AddDays(-11) }; var vm2 = new Vermietung() { StartStandort = s1, EndeStandort = s1, Auto = a2, Kunde = k2, Start = DateTime.Now.AddDays(-95), Ende = DateTime.Now.AddDays(-87) }; var vm3 = new Vermietung() { StartStandort = s2, EndeStandort = s2, Auto = a3, Kunde = k3, Start = DateTime.Now.AddDays(-45), Ende = DateTime.Now.AddDays(-31) }; Repository.Add(vm1); Repository.Add(vm2); Repository.Add(vm3); Repository.Save(); }
public void CreateDemoData() { var kundenFaker = new Faker <Kunde>() .RuleFor(x => x.Name, x => x.Name.FullName()) .RuleFor(x => x.GebDatum, x => x.Date.Past(40)); var k1 = kundenFaker.Generate(); var k2 = kundenFaker.Generate(); var k3 = kundenFaker.Generate(); var standortFaker = new Faker <Standort>() .RuleFor(x => x.Name, x => x.Address.City()); var s1 = standortFaker.Generate(); var s2 = standortFaker.Generate(); var autoFaker = new Faker <Auto>() .RuleFor(x => x.Farbe, x => x.Commerce.Color()) .RuleFor(x => x.Hersteller, x => x.Vehicle.Manufacturer()) .RuleFor(x => x.Modell, x => x.Vehicle.Model()); var a1 = autoFaker.Generate(); var a2 = autoFaker.Generate(); var a3 = autoFaker.Generate(); var vm1 = new Vermietung() { StartStandort = s1, ZielStandort = s2, Auto = a1, Kunde = k1, Datum = DateTime.Now.AddDays(-15), Ende = DateTime.Now.AddDays(-11) }; var vm2 = new Vermietung() { StartStandort = s1, ZielStandort = s1, Auto = a2, Kunde = k2, Datum = DateTime.Now.AddDays(-95), Ende = DateTime.Now.AddDays(-87) }; var vm3 = new Vermietung() { StartStandort = s2, ZielStandort = s2, Auto = a3, Kunde = k3, Datum = DateTime.Now.AddDays(-45), Ende = DateTime.Now.AddDays(-31) }; UnitOfWork.GetRepo <Vermietung>().Add(vm1); UnitOfWork.GetRepo <Vermietung>().Add(vm2); UnitOfWork.GetRepo <Vermietung>().Add(vm3); UnitOfWork.SaveAll(); }
public void Core_GetAllKundenDieSeitXXNichtMehrGebuchtHaben() { var repoMock = new Mock <IKundenRepository>(); var uowMock = new Mock <IUnitOfWork>(); uowMock.Setup(x => x.GetRepository <Kunde>()).Returns(repoMock.Object); uowMock.Setup(x => x.KundenRepo).Returns(repoMock.Object); var core = new Core(uowMock.Object); repoMock.Setup(x => x.Query()).Returns(() => { var k1 = new Kunde() { Name = "K1" }; var k2 = new Kunde() { Name = "K2" }; var vm1 = new Vermietung() { Bis = DateTime.Now.AddDays(-50), Kunde = k1 }; var vm2 = new Vermietung() { Bis = DateTime.Now.AddDays(-150), Kunde = k2 }; k1.Mietungen.Add(vm1); k2.Mietungen.Add(vm2); return(new[] { k1, k2 }.AsQueryable()); }); var result = core.Kunden.GetAllKundenDieSeitXXNichtMehrGebuchtHaben(100, DateTime.Now); Assert.AreEqual(1, result.Count()); Assert.AreEqual("K2", result.First().Name); }