/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Maschinenart NeueMaschinenart(string Maschinenartbezeichnung) { try { Maschinenart DieserMaschinenart = new Maschinenart(); DieserMaschinenart.Maschinenartbezeichnung = Maschinenartbezeichnung; DieserMaschinenart.Gesamtkosten = 0; DieserMaschinenart.Gesamteinnahmen = 0; DieserMaschinenart.Vermietfaktor = 0; DieserMaschinenart.Tagessatz = 0; DieserMaschinenart.Rentabilität = 0; modell.MaschinenartenlisteSatz.AddObject(DieserMaschinenart); try { modell.SaveChanges(); } catch (Exception ex) { Console.WriteLine(DieserMaschinenart.ToString() + " | " + ex.Message.ToString()); } return(DieserMaschinenart); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
private void Add() { Maschinenart newMaschinenart = new Maschinenart(); Maschinenarten.Add(newMaschinenart); 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 <Maschinenart> SaveMaschinenartSet(List <Maschinenart> MaschinenartSet, 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 (Maschinenart p in MaschinenartSet) { if (p.ChangeTracker.State == ObjectState.Modified) { //var abfrage = from Maschinenart in modell.MaschinenartenlisteSatz.Include("Maschinenkaufliste").Include("Vermietung").Include("Lagerbestand") select Maschinenart; var abfrage = from Maschinenart in modell.MaschinenartenlisteSatz select Maschinenart; Maschinenart current = abfrage.Where(o => o.Maschinenart_ID == p.Maschinenart_ID).First(); CrossCutting.Mietmaschinendatenbank_DataClasses.Maschinenart.Clone(p, current); modell.MaschinenartenlisteSatz.ApplyChanges(current); current.ChangeTracker.State = ObjectState.Unchanged; } else if (p.ChangeTracker.State == ObjectState.Deleted) { var abfrage = from Maschinenart in modell.MaschinenartenlisteSatz.Include("Maschinenkaufliste").Include("Vermietung").Include("Lagerbestand") select Maschinenart; Maschinenart current = abfrage.Where(o => o.Maschinenart_ID == p.Maschinenart_ID).First(); current.MarkAsDeleted(); modell.MaschinenartenlisteSatz.DeleteObject(current); } else if (p.ChangeTracker.State == ObjectState.Added) { modell.MaschinenartenlisteSatz.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 <Maschinenart> NeueMaschinenart = MaschinenartSet.Where(f => f.ChangeTracker.State == ObjectState.Added).ToList(); // Änderungen speichern modell.SaveChanges(); modell.Refresh(System.Data.Objects.RefreshMode.StoreWins, modell.MaschinenartenlisteSatz); // Statistik der Änderungen zurückgeben return(NeueMaschinenart); }
/// <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); } }
/// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Maschinenart AddGekaufteMaschineZuMaschinenart(int MaschinenartID, int rechnungspreis) { try { Maschinenart art = modell.MaschinenartenlisteSatz.Where(f => f.Maschinenart_ID == MaschinenartID).SingleOrDefault(); Lagerbestand lager = modell.LagerbestandSatz.Where(f => f.Maschinenart_ID == MaschinenartID).SingleOrDefault();; art.Gesamtkosten += rechnungspreis; art.Tagessatz = art.Gesamtkosten / lager.Gesamtanzahl * 0.1; art.Rentabilität = ((art.Gesamteinnahmen / art.Gesamtkosten) - 1) * 100; modell.SaveChanges(); return(art); } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }
///------------------------------------------------------------------------------------- ///------------------------------------------------------------------------------------- ///------------------------------------------------------------------------------------- /// <summary> /// Füge einen Passagier zu einem Flug hinzu /// </summary> public Maschinenkauf NeuMaschinenkauf(int MaschinenartID, int anz, int Einzelpreis, DateTime Kaufdatum) { 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 Maschinenkauf kauf = Maschinenkauf_Verwaltungsklasse.NeuMaschinenkauf(MaschinenartID, anz, Einzelpreis, Kaufdatum); if (kauf != null) { return(null); } // Lagerbestand erhöhen Lagerbestand lager = Maschinenkauf_Verwaltungsklasse.AddGekaufteMaschineZuLager(MaschinenartID, anz); if (lager != null) { return(null); } // Zu Maschinenartenliste hinzufügen Maschinenart art = Maschinenkauf_Verwaltungsklasse.AddGekaufteMaschineZuMaschinenart(MaschinenartID, anz * Einzelpreis); if (art != null) { return(null); } // Transaktion erfolgreich abschließen t.Complete(); // Buchungscode zurückgeben return(kauf); } } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); return(null); } }