예제 #1
0
        public IActionResult CloseShoppingCartOpened()
        {
            var userId = HttpContext.GetUserID();

            try
            {
                var shoppingcart   = _getOrCreateShoppingCartService.Execute(userId);
                var purchaseStatus = _purchaseStatusRepository.GetByName(nameof(PurchaseStatusEnum.RequestedProducts));

                shoppingcart.PurchaseStatusId = purchaseStatus.Id;
                _shoppingCartRepository.Update(shoppingcart);
                var hasUpdate = _unitOfWork.Save();

                if (hasUpdate > 0)
                {
                    return(Ok());
                }

                return(StatusCode((int)HttpStatusCode.NotModified));
            }
            catch (ValidationOnServiceException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
예제 #2
0
 public IActionResult GetAll()
 {
     try
     {
         var userId         = HttpContext.GetUserID();
         var purchaseStatus = _purchaseStatusRepository.GetByName(nameof(PurchaseStatusEnum.Open));
         var shoppingCarts  = _shoppingCartRepository
                              .GetAllWithInclude(x => x.PurchaseStatus,
                                                 x => x.ProductShoppingCarts)
                              .Where(x => x.PurchaseStatus.Code > purchaseStatus.Code)
                              .ToList();
         foreach (var shoppingCart in shoppingCarts)
         {
             foreach (var productShoppingCart in shoppingCart.ProductShoppingCarts)
             {
                 var product = _productRepository.GetAllWithInclude(x => x.Photos)
                               .First(x => x.Id == productShoppingCart.ProductId);
                 productShoppingCart.Product = product;
             }
         }
         return(Ok(_mapper.Map <List <DTOShoppingCart> >(shoppingCarts)));
     }
     catch
     {
         return(StatusCode((int)HttpStatusCode.InternalServerError, ErroMessage));
     }
 }
예제 #3
0
        public ShoppingCart Execute(Guid userId)
        {
            var user = _userRepository.GetById(userId);

            if (user == null)
            {
                throw new ValidationOnServiceException("Usuário não encontrado.");
            }

            var shoppingCartOpen = _shoppingCartRepository
                                   .GetAllWithInclude(x => x.ProductShoppingCarts,
                                                      x => x.PurchaseStatus)
                                   .FirstOrDefault(x => x.PurchaseStatus.Name == nameof(PurchaseStatusEnum.Open) && x.UserId == user.Id);

            if (shoppingCartOpen != null)
            {
                foreach (var productShoppingCart in shoppingCartOpen.ProductShoppingCarts)
                {
                    var product = _productRepository.GetAllWithInclude(x => x.Photos)
                                  .First(x => x.Id == productShoppingCart.ProductId);
                    productShoppingCart.Product = product;
                }

                return(shoppingCartOpen);
            }
            else
            {
                var statusShoppingCart  = _purchaseStatusRepository.GetByName(nameof(PurchaseStatusEnum.Open));
                var newShoppingCartOpen = _shoppingCartRepository.Insert(new ShoppingCart
                {
                    UserId           = user.Id,
                    PurchaseStatusId = statusShoppingCart.Id
                });

                _unitOfWork.Save();
                return(newShoppingCartOpen);
            }
        }