/// <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);
            }
        }
Example #7
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);
            }
        }
Example #8
0
        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();
        }
Example #9
0
        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);
        }