Beispiel #1
0
        /// <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();
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
            }
        }