Exemple #1
0
        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));
            }
        }
Exemple #2
0
        /**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);
            }
        }