private async Task <int> SaveOrderByVendor(List <Item> cart, Payment payment) { Dictionary <int, int> VendorOrderIndex = new Dictionary <int, int>(); List <Order> Orders = new List <Order>(); int i = 0; foreach (Item item in cart) { try { int index = VendorOrderIndex[item.food.VendorId]; } catch (KeyNotFoundException) { VendorOrderIndex[item.food.VendorId] = i++; Order order = new Order(); order.Status = "Cooking"; order.Date = DateTime.Now; order.UserId = payment.UserId; order.PaymentId = payment.Id; order.VendorId = item.food.VendorId; _context.Add(order); await _context.SaveChangesAsync(); Orders.Add(order); Console.WriteLine(order.VendorId); } } foreach (KeyValuePair <int, int> entry in VendorOrderIndex) { await sendMess(entry.Key); } foreach (Item item in cart) { int ind = VendorOrderIndex[item.food.VendorId]; Order order = Orders[ind]; Food food = await _context.Food.FindAsync(item.food.Id); if (food.OrderFoods == null) { food.OrderFoods = new List <OrderFood>(); } food.OrderFoods.Add ( new OrderFood { Order = order, Food = food, Amount = item.quantity } ); await _context.SaveChangesAsync(); } return(0); }
public async Task <IActionResult> Create([Bind("Id,Name,Logo,Category")] Vendor vendor) { if (ModelState.IsValid) { _context.Add(vendor); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(vendor)); }
public async Task <IActionResult> CreateFood([Bind("VendorId,Name,Image,Description,Price,Amount,Discount")] Food food) { if (ModelState.IsValid) { if (!authenticateVendorId(food.VendorId).Result) { return(NotFound()); } _context.Add(food); await _context.SaveChangesAsync(); return(RedirectToAction("Index", new { id = food.VendorId })); } return(View(food)); }
private Report createReport(DateTime date, int vendorId) { var orders = from m in _context.Order select m; if (vendorId == -1) //whole food court { orders = orders.Where(orders => orders.Date.Date == date); } else { orders = orders.Where(orders => orders.Date.Date == date && orders.VendorId == vendorId); } // await orders.ToListAsync(); List <Order> orderList = orders.ToList(); double Income = 0; var reports = from m in _context.Report select m; Report report = new Report(); var re = reports.Where(r => r.Date == date && r.VendorId == vendorId).ToList(); if (re.Count > 0) //if found any report { report = re[0]; report.FoodSold = JsonConvert.SerializeObject(orderList); report.Income = Income; _context.Update(report); _context.SaveChanges(); return(report); } report.Date = date.Date; report.Name = date.ToString(); report.FoodSold = JsonConvert.SerializeObject(orderList); report.VendorId = vendorId; report.Income = Income; _context.Add(report); _context.SaveChanges(); return(report); }