Example #1
0
        public object Clone()
        {
            KundeItemViewModel tempObject = (KundeItemViewModel)this.MemberwiseClone();

            tempObject._item = (Kunde)_item.Clone();
            return(tempObject);
        }
        /// <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 <Kunde> SaveKundenSet(List <Kunde> KundenSet, 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 (Kunde p in KundenSet)
                {
                    if (p.ChangeTracker.State == ObjectState.Modified)
                    {
                        var   abfrage = from Kundendaten in modell.KundenlisteSatz select Kundendaten;
                        Kunde current = abfrage.Where(o => o.Kunden_ID == p.Kunden_ID).First();

                        Kunde.Clone(p, current);

                        modell.KundenlisteSatz.ApplyChanges(current);

                        current.ChangeTracker.State = ObjectState.Unchanged;
                    }
                    else if (p.ChangeTracker.State == ObjectState.Deleted)
                    {
                        var   abfrage = from Kundendaten in modell.KundenlisteSatz select Kundendaten;
                        Kunde current = abfrage.Where(o => o.Kunden_ID == p.Kunden_ID).First();
                        current.MarkAsDeleted();
                        modell.KundenlisteSatz.DeleteObject(current);
                    }
                    else if (p.ChangeTracker.State == ObjectState.Added)
                    {
                        modell.KundenlisteSatz.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 <Kunde> NeueKunden = KundenSet.Where(f => f.ChangeTracker.State == ObjectState.Added).ToList();

            // Änderungen speichern
            modell.SaveChanges();

            modell.Refresh(System.Data.Objects.RefreshMode.StoreWins, modell.KundenlisteSatz);
            // Statistik der Änderungen zurückgeben
            return(NeueKunden);
        }
 public override ReservationDto Clone()
 {
     return(new ReservationDto
     {
         ReservationNr = ReservationNr,
         Von = Von,
         Bis = Bis,
         Auto = Auto.Clone(),
         Kunde = Kunde.Clone()
     });
 }
Example #4
0
 public override object Clone()
 {
     return(new ReservationDto
     {
         ReservationNr = ReservationNr,
         Von = Von,
         Bis = Bis,
         Auto = (AutoDto)Auto.Clone(),
         Kunde = (KundeDto)Kunde.Clone()
     });
 }