private void UpdateDistribuitorCandles(string[] selectedCandles, Distribuitor candledataToUpdate) { if (selectedCandles == null) { candledataToUpdate.DistribuitorCandles = new List <DistribuitorCandle>(); return; } var selectedCandlesHS = new HashSet <string>(selectedCandles); var distribuitorCandles = new HashSet <int> (candledataToUpdate.DistribuitorCandles.Select(c => c.Candle.ID)); foreach (var candle in _context.Candles) { if (selectedCandlesHS.Contains(candle.ID.ToString())) { if (!distribuitorCandles.Contains(candle.ID)) { candledataToUpdate.DistribuitorCandles.Add(new DistribuitorCandle { DistribuitorID = candledataToUpdate.ID, CandleID = candle.ID }); } } else { if (distribuitorCandles.Contains(candle.ID)) { DistribuitorCandle candleToRemove = candledataToUpdate.DistribuitorCandles.FirstOrDefault(i => i.CandleID == candle.ID); _context.Remove(candleToRemove); } } } }
public static void Initialize(ShopContext context) { context.Database.EnsureCreated(); if (context.Candles.Any()) { return; // BD a fost creata anterior } var candles = new Candle[] { new Candle { Name = "Fericire", Distribuitor = "Sucevita", Price = Decimal.Parse("22") }, new Candle { Name = "Căsnicie", Distribuitor = "Casa cu fericire", Price = Decimal.Parse("18") }, new Candle { Name = "Iubire", Distribuitor = "Nunta de vis", Price = Decimal.Parse("27") } }; foreach (Candle l in candles) { context.Candles.Add(l); } context.SaveChanges(); var customers = new Customer[] { new Customer { CustomerID = 1050, Name = "Popescu Marcela", BirthDate = DateTime.Parse("1979-09-01") }, new Customer { CustomerID = 1045, Name = "Mihailescu Cornel", BirthDate = DateTime.Parse("1969-07-08") }, }; foreach (Customer c in customers) { context.Customers.Add(c); } context.SaveChanges(); var orders = new Order[] { new Order { CandleID = 1, CustomerID = 1050, OrderDate = DateTime.Parse("02-25-2020") }, new Order { CandleID = 3, CustomerID = 1045, OrderDate = DateTime.Parse("02-25-2020") }, new Order { CandleID = 1, CustomerID = 1045, OrderDate = DateTime.Parse("02-25-2020") }, new Order { CandleID = 2, CustomerID = 1050, OrderDate = DateTime.Parse("02-25-2020") }, }; foreach (Order e in orders) { context.Orders.Add(e); } context.SaveChanges(); var distribuitors = new Distribuitor[] { new Distribuitor { DistribuitorName = "Sucevița", Adress = "Str. Aviatorilor, nr. 40, Cluj-Napoca" }, new Distribuitor { DistribuitorName = "Casa cu fericire", Adress = "Str. Horea, nr. 83, Cluj-Napoca" }, new Distribuitor { DistribuitorName = "Nunta de vis", Adress = "Str. Dorea, nr. 7, Cluj-Napoca" }, }; foreach (Distribuitor p in distribuitors) { context.Distribuitors.Add(p); } context.SaveChanges(); var distribuitorcandles = new DistribuitorCandle[] { new DistribuitorCandle { CandleID = candles.Single(c => c.Name == "Fericire").ID, DistribuitorID = distribuitors.Single(i => i.DistribuitorName == "Sucevița").ID }, new DistribuitorCandle { CandleID = candles.Single(c => c.Name == "Căsnicie").ID, DistribuitorID = distribuitors.Single(i => i.DistribuitorName == "Casa cu fericire").ID }, new DistribuitorCandle { CandleID = candles.Single(c => c.Name == "Iubire").ID, DistribuitorID = distribuitors.Single(i => i.DistribuitorName == "Nunta de vis").ID }, }; foreach (DistribuitorCandle pl in distribuitorcandles) { context.DistribuitorCandles.Add(pl); } context.SaveChanges(); }