public async Task <IActionResult> Create([FromBody] SavedOrderResource resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var order = _mapper.Map <SavedOrderResource, Order>(resource); await _unitOfWork.OrderRepository.AddAsync(order); if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.Order, order.Id); return(FailedToSave(order.Id)); } order = await _unitOfWork.OrderRepository.GetOrder(order.Id, false); _logger.LogMessage(LoggingEvents.Created, ApplicationConstants.ControllerName.Order, order.Id); return(Ok(order.Id)); }
public async Task <IActionResult> Update(string id, [FromBody] SavedOrderResource savedOrderResource) { bool isValid = Guid.TryParse(id, out var orderId); if (!isValid) { return(InvalidId(id)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var order = await _unitOfWork.OrderRepository.GetOrder(orderId); if (order == null) { return(NotFound(orderId)); } if (order.UserId != User.GetUserId()) { return(UnAuthorized()); } _mapper.Map(savedOrderResource, order); if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.Order, order.Id); return(FailedToSave(order.Id)); } order = await _unitOfWork.OrderRepository.GetOrder(order.Id); var result = _mapper.Map <Order, SavedOrderResource>(order); _logger.LogMessage(LoggingEvents.Updated, ApplicationConstants.ControllerName.Order, order.Id); return(Ok(result)); }