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)); } }
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)); } }
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); } }