Exemple #1
0
 public static async Task AddProducts(this IShoppingCartService service, ProductDto[] products)
 {
     foreach (var p in products)
     {
         await service.AddAsync(p);
     }
 }
Exemple #2
0
        public async Task <int> AddShoppingCart(ShoppingCartDto model)
        {
            IProductService service2 = new  ProductService();
            var             product  = await service2.QueryAsync(model.ProductId);

            return(await _service.AddAsync(new ShoppingCart()
            {
                ProductId = model.ProductId,
                ColorId = product.ColorId,
                SizeId = product.SizeId,
                Number = 1,
                UserId = model.UserId
            }));
        }
Exemple #3
0
        public async Task <IActionResult> Addtocart(ShoppingCartDto shoppingCartDto)
        {
            ErrorDto errorDto     = new ErrorDto();
            var      usercontrole = await _shoppingCartService.AppuserControl(shoppingCartDto.AppuserId);

            if (!usercontrole.IsOk)
            {
                errorDto.Errors = usercontrole.Errors;
                errorDto.Status = usercontrole.Status;
                return(NotFound(errorDto));
            }

            var userproductstokcontrol = await _shoppingCartService.ProductStockControl(shoppingCartDto.ProductId, shoppingCartDto.Count);

            if (!userproductstokcontrol.IsOk)
            {
                errorDto.Errors = usercontrole.Errors;
                errorDto.Status = usercontrole.Status;
                return(NotFound(errorDto));
            }

            var shoppingCartControl = await _shoppingCartService.ShoppingCartControl(shoppingCartDto.ProductId, shoppingCartDto.AppuserId);


            if (!shoppingCartControl.IsOk)
            {
                var newshoppingCartDto = await _shoppingCartService.AddAsync(_mapper.Map <ShoppingCart>(shoppingCartDto));

                return(Created(string.Empty, _mapper.Map <ShoppingCartDto>(newshoppingCartDto)));
            }


            var shoppingCart = shoppingCartControl.Model;

            shoppingCart.Count = shoppingCart.Count + shoppingCartDto.Count;

            if (userproductstokcontrol.Model.Stock < shoppingCart.Count)
            {
                errorDto.Status = 400;
                errorDto.Errors.Add("Product is out of stock");
                return(NotFound(errorDto));
            }


            var cart = _shoppingCartService.Update(shoppingCart);


            return(Ok(cart));
        }