示例#1
0
        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));
        }
示例#2
0
        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));
        }