public async Task <IActionResult> AddMenuCarShop(OrderShopEntity model) { MenuBusiness menuBusiness = new MenuBusiness(); var response = menuBusiness.AddOrderAndMenus(_context, model); if (response.Error == false) { return(Ok(response)); } else { return(BadRequest(response)); } }
/**CREATE ORDER AND SHOP CAR**/ public ResultResponse <string> AddOrderAndMenus(BDHomeFoodContext _context, OrderShopEntity model) { try { ResultResponse <string> response = new ResultResponse <string>(); if (model.LstMenu == null) { response.Data = null; response.Error = true; response.Message = "Agrega Menus Al Carrito"; return(response); } var menuId = model.LstMenu[0].MenuId; var collaboratorId = _context.Menu.FirstOrDefault(x => x.MenuId == menuId).CollaboratorId; using (var ts = new TransactionScope()){ //CREATE ORDER Order order = new Order(); _context.Order.Add(order); order.State = ConstantHelpers.EstadoCompra.Comprado; order.CustomerId = model.CustomerId; order.CollaboratorId = collaboratorId; order.TotalCost = 0; order.TotalCostOrder = 0; order.TotalCostDriver = 0; _context.SaveChanges(); //CREATE MENU foreach (var item in model.LstMenu) { Models.ShopCar shopCar = new Models.ShopCar(); _context.ShopCar.Add(shopCar); shopCar.CustomerId = model.CustomerId; shopCar.MenuId = item.MenuId; shopCar.Quantity = item.QuantityMenuCurrent; var menu = _context.Menu.FirstOrDefault(x => x.MenuId == item.MenuId); shopCar.Price = menu.Price * item.QuantityMenuCurrent; shopCar.OrderId = order.OrderId; shopCar.State = ConstantHelpers.Estado.Activo; _context.SaveChanges(); } var listShopCarOrder = _context.ShopCar.Where(x => x.OrderId == order.OrderId).ToList(); order.TotalCost = listShopCarOrder.Sum(x => x.Price); _context.SaveChanges(); response.Data = null; response.Error = false; response.Message = "Venta Realizada con Exito"; ts.Complete(); } return(response); } catch (Exception ex) { throw new Exception(ex.Message); } }