public WeekBasketViewModel(Consumer consumer, TempWeekBasket tempWeekBasket,ValidatedWeekBasket validatedWeekBasket, ApplicationDbContext context) { TempWeekBasket = tempWeekBasket; ValidatedWeekBasket = validatedWeekBasket; Consumer = consumer; Products = context.Products.Include(x=>x.Producer).Where(x => x.State == Product.ProductState.Enabled).ToList(); ProductTypes = context.ProductTypes.Include(x => x.ProductFamilly).ToList(); }
// GET: WeekBasket/Index/id public async Task<IActionResult> Index() { Consumer consumer = await GetCurrentStolonsUserAsync() as Consumer; if (consumer == null) { return NotFound(); } TempWeekBasket tempWeekBasket = _context.TempsWeekBaskets.Include(x => x.Consumer).Include(x => x.Products).FirstOrDefault(x => x.Consumer.Id == consumer.Id); ValidatedWeekBasket validatedWeekBasket = _context.ValidatedWeekBaskets.Include(x => x.Consumer).Include(x => x.Products).FirstOrDefault(x => x.Consumer.Id == consumer.Id); if (tempWeekBasket == null) { //Il n'a pas encore de panier de la semaine, on lui en crée un tempWeekBasket = new TempWeekBasket(); tempWeekBasket.Consumer = consumer; tempWeekBasket.Products = new List<BillEntry>(); _context.Add(tempWeekBasket); _context.SaveChanges(); } return View(new WeekBasketViewModel(consumer, tempWeekBasket, validatedWeekBasket, _context)); }
public async Task<string> JsonTmpWeekBasket() { Consumer consumer = await GetCurrentStolonsUserAsync() as Consumer; if (consumer == null) { return null; } TempWeekBasket tempWeekBasket = _context.TempsWeekBaskets.Include(x => x.Products).FirstOrDefault(x => x.Consumer.Id == consumer.Id); if (tempWeekBasket == null) { //Il n'a pas encore de panier de la semaine, on lui en creer un tempWeekBasket = new TempWeekBasket(); tempWeekBasket.Consumer = consumer; tempWeekBasket.Products = new System.Collections.Generic.List<BillEntry>(); _context.Add(tempWeekBasket); _context.SaveChanges(); } else { tempWeekBasket.RetrieveProducts(_context); } return JsonConvert.SerializeObject(tempWeekBasket, Formatting.Indented, new JsonSerializerSettings() { ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore }); }
private bool IsBasketValidated(TempWeekBasket tmpBasket) { ValidatedWeekBasket validatedBasket = _context.ValidatedWeekBaskets.Include(x => x.Consumer).Include(x => x.Products).FirstOrDefault(x => x.Consumer.Id == tmpBasket.Consumer.Id); if (validatedBasket == null) { return false; } if (validatedBasket.Products.Count != tmpBasket.Products.Count) { return false; } foreach (BillEntry billEntry in tmpBasket.Products.ToList()) { BillEntry validatedEntry = validatedBasket.Products.FirstOrDefault(x => x.ProductId == billEntry.ProductId); if (validatedEntry == null) { return false; } if (billEntry.Quantity != validatedEntry.Quantity) { return false; } } return true; }