private void UpdateOwnedCakes(string[] selectedCakes, Owners ownersToUpdate)
        {
            if (selectedCakes == null)
            {
                ownersToUpdate.OwnedCake = new List <OwnedCake>();
                return;
            }
            var selectedCakesHS = new HashSet <string>(selectedCakes);
            var ownedCakes      = new HashSet <int>
                                      (ownersToUpdate.OwnedCake.Select(c => c.Cake.ID));

            foreach (var cake in _context.Cake)
            {
                if (selectedCakesHS.Contains(cake.ID.ToString()))
                {
                    if (!ownedCakes.Contains(cake.ID))
                    {
                        ownersToUpdate.OwnedCake.Add(new OwnedCake
                        {
                            OwnerID =
                                ownersToUpdate.ID,
                            CakeID = cake.ID
                        });
                    }
                }
                else
                {
                    if (ownedCakes.Contains(cake.ID))
                    {
                        OwnedCake cakeToRemove = ownersToUpdate.OwnedCake.FirstOrDefault(i
                                                                                         => i.CakeID == cake.ID);
                        _context.Remove(cakeToRemove);
                    }
                }
            }
        }
Пример #2
0
        public static void Initialize(BakeryContext context)
        {
            context.Database.EnsureCreated();
            if (context.Cake.Any())
            {
                return;
            }

            var cakes = new Cake[]
            {
                new Cake {
                    Name = "Tiramisu", Baker = "Simon Matei", Price = Decimal.Parse("25")
                },
                new Cake {
                    Name = "Profiterol", Baker = "Maria Pop", Price = Decimal.Parse("50")
                },
                new Cake {
                    Name = "Negresa", Baker = "Mihai Constantin", Price = Decimal.Parse("15")
                },
                new Cake {
                    Name = "Amandina", Baker = "Celia Popescu", Price = Decimal.Parse("22")
                },
                new Cake {
                    Name = "Musuroi de cartita", Baker = "Elena Constantin", Price = Decimal.Parse("40")
                },
                new Cake {
                    Name = "Brownies", Baker = "Emilia Calinescu", Price = Decimal.Parse("33")
                },
            };

            if (!context.Cake.Any())
            {
                foreach (Cake b in cakes)
                {
                    context.Cake.Add(b);
                }
                context.SaveChanges();
            }
            var customers = new Customer[]
            {
                new Customer {
                    Name = "Popescu Marcela", BirthDate = DateTime.Parse("1989-04-20")
                },
                new Customer {
                    Name = "Mihailesc Cornel", BirthDate = DateTime.Parse("2000-07-12")
                },
            };

            if (!context.Customers.Any())
            {
                foreach (Customer c in customers)
                {
                    context.Customers.Add(c);
                }
                context.SaveChanges();
            }
            var orders = new Order[]
            {
                new Order {
                    Cake = context.Cake.Single(c => c.Name == "Tiramisu"), Customer = context.Customers.Single(c => c.Name == "Popescu Marcela"), OrderDate = DateTime.Parse("12-2-2020")
                },
                new Order {
                    Cake = context.Cake.Single(c => c.Name == "Amandina"), Customer = context.Customers.Single(c => c.Name == "Mihailesc Cornel"), OrderDate = DateTime.Parse("05-20-2020")
                },
            };

            if (!context.Orders.Any())
            {
                foreach (Order e in orders)
                {
                    context.Orders.Add(e);
                }
                context.SaveChanges();
            }
            var owners = new Owners[]
            {
                new Owners {
                    OwnerName = "Felix Dumitru", Adress = "Str. Garii, nr. 5, Targu-Jiu"
                },
                new Owners {
                    OwnerName = "Maria Dragomir", Adress = "Str. Plopilor, nr. 12, Sibiu"
                },
                new Owners {
                    OwnerName = "Adrian Cercel", Adress = "Str. Soarelui, nr.10, Cluj-Napoca"
                },
            };

            foreach (Owners p in owners)
            {
                context.Owners.Add(p);
            }
            context.SaveChanges();
            var ownedcake = new OwnedCake[]
            {
                new OwnedCake {
                    CakeID  = context.Cake.Single(c => c.Name == "Tiramisu").ID,
                    OwnerID = context.Owners.Single(i => i.OwnerName == "Felix Dumitru").ID,
                    Cake    = context.Cake.Single(c => c.Name == "Tiramisu"),
                    Owners  = context.Owners.Single(i => i.OwnerName == "Felix Dumitru")
                }
            };

            foreach (OwnedCake pb in ownedcake)
            {
                context.OwnedCake.Add(pb);
            }
            context.SaveChanges();
        }