public async Task <IActionResult> Create([FromBody] SavedShoppingCartResource shoppingCartResources) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // do not need to check for duplication in here var shoppingCart = _mapper.Map <SavedShoppingCartResource, ShoppingCart>(shoppingCartResources); await _unitOfWork.ShoppingCartRepository.AddAsync(shoppingCart); if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.ShoppingCart, shoppingCart.Id); return(FailedToSave(shoppingCart.Id)); } shoppingCart = await _unitOfWork.ShoppingCartRepository.GetShoppingCart(shoppingCart.Id); var result = (_mapper.Map <ShoppingCart, ShoppingCartResource>(shoppingCart)); _logger.LogMessage(LoggingEvents.Created, ApplicationConstants.ControllerName.Product, shoppingCart.Id); return(CreatedAtRoute(ApplicationConstants.ControllerName.ShoppingCart, new { id = shoppingCart.Id }, result)); }
public async Task <IActionResult> Update(string id, [FromBody] SavedShoppingCartResource shoppingCartResource) { bool isValid = Guid.TryParse(id, out var shoppingCartId); if (!isValid) { return(InvalidId(id)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var shoppingCart = await _unitOfWork.ShoppingCartRepository.GetShoppingCart(shoppingCartId); if (shoppingCart == null) { return(NotFound(shoppingCartId)); } _mapper.Map(shoppingCartResource, shoppingCart); if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.ShoppingCart, shoppingCart.Id); return(FailedToSave(shoppingCart.Id)); } shoppingCart = await _unitOfWork.ShoppingCartRepository.GetShoppingCart(shoppingCart.Id); var result = _mapper.Map <ShoppingCart, SavedShoppingCartResource>(shoppingCart); _logger.LogMessage(LoggingEvents.Updated, ApplicationConstants.ControllerName.ShoppingCart, shoppingCart.Id); return(Ok(result)); }