public async Task <IActionResult> PutOrderItemTopping(int id, OrderItemTopping orderItemTopping) { if (id != orderItemTopping.Id) { return(BadRequest()); } _context.Entry(orderItemTopping).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderItemToppingExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public IActionResult Checkout(string note) { var cart = SessionHelper.GetObjectFromJson <List <OrderItemViewModel> >(HttpContext.Session, "cart"); var orderId = SessionHelper.GetObjectFromJson <long>(HttpContext.Session, "orderId"); var order = _ctx.Order.FirstOrDefault(x => x.Id == orderId); var ordersForCustomerToday = _ctx.Order.Where(x => x.CustomerEmail == order.CustomerEmail && x.CreateTime.ToLocalTime().Day == DateTime.Today.Day && x.OrderStatusId != 2 && x.CommunityId != 1); if (ordersForCustomerToday.Count() > 1) { TempData["ErrorMessage"] = "Orders are limited to only one per day, cancel your last order if you must create a new one."; return(RedirectToAction("ShortendOrderView", "Home")); } ViewBag.cart = cart; order.Note = note; _ctx.SaveChanges(); foreach (var item in cart) { var orderItem = new OrderItem { MenuItemId = item.MenuItem.Id, Quantity = item.Quantity, SizeId = item.SizeId, CreateBy = 1, UpdateBy = 1, CreateTime = DateTime.UtcNow, UpdateTime = DateTime.UtcNow, OrderId = orderId }; _ctx.OrderItem.Add(orderItem); _ctx.SaveChanges(); foreach (var topping in item.Toppings) { var toppingItem = new OrderItemTopping { OrderItemId = orderItem.Id, ToppingId = topping.Id, CreateBy = 1, UpdateBy = 1, CreateTime = DateTime.UtcNow, UpdateTime = DateTime.UtcNow }; _ctx.OrderItemTopping.Add(toppingItem); } var orderToUpdate = _ctx.Order.First(x => x.Id == orderId); orderToUpdate.OrderStatusId = _ctx.OrderStatus.SingleOrDefault(x => x.Status == "Pending").Id; _ctx.SaveChanges(); } return(RedirectToAction("OrderInfoForCustomer", "Orders")); }
public async Task <ActionResult <OrderItemTopping> > PostOrderItemTopping(OrderItemTopping orderItemTopping) { // If orderItemId is null put code in here to create the orderItem Console.WriteLine($"*************************** DEBUG POST: {orderItemTopping.ToppingId}"); Console.WriteLine($"*************************** DEBUG POST: {orderItemTopping.OrderItemId}"); _context.OrderItemToppings.Add(orderItemTopping); await _context.SaveChangesAsync(); return(CreatedAtAction("GetOrderItemTopping", new { id = orderItemTopping.Id }, orderItemTopping)); }
public async Task <ActionResult <OrderItemTopping> > DeleteOrderItemTopping(OrderItemTopping OrderItemTopping) { Console.WriteLine($" ***************************************** Got here"); Console.WriteLine($"*************************** DEBUG DELETE: side: {OrderItemTopping.Side}"); Console.WriteLine($"*************************** DEBUG DELETE: toppingID: {OrderItemTopping.ToppingId}"); Console.WriteLine($"*************************** DEBUG DELETE: orderItemId: {OrderItemTopping.OrderItemId}"); var toDelete = _context.OrderItemToppings.FirstOrDefault(i => i.Side == OrderItemTopping.Side && i.ToppingId == OrderItemTopping.ToppingId && i.OrderItemId == OrderItemTopping.OrderItemId); if (toDelete == null) { return(NotFound()); } _context.OrderItemToppings.Remove(toDelete); await _context.SaveChangesAsync(); return(Ok()); }