public async Task <IActionResult> Create([FromBody] ShippingResource shippingResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var shipping = _mapper.Map <ShippingResource, Shipping>(shippingResource); await _unitOfWork.ShippingRepository.AddAsync(shipping); // if something happens and the new item can not be saved, return the error if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.Shipping, shipping.Id); return(FailedToSave(shipping.Id)); } shipping = await _unitOfWork.ShippingRepository.GetShipping(shipping.Id); var result = _mapper.Map <Shipping, ShippingResource>(shipping); _logger.LogMessage(LoggingEvents.Created, ApplicationConstants.ControllerName.Shipping, shipping.Id); return(CreatedAtRoute(ApplicationConstants.ControllerName.Shipping, new { id = shipping.Id }, result)); }
public async Task <IActionResult> CreateShipping([FromBody] ShippingResource shippingResource) { var shipping = mapper.Map <ShippingResource, Shipping>(shippingResource); repository.AddShipping(shipping); await unitOfWork.CompleteAsync(); shipping = await repository.GetShippingById(shipping.Id); var result = mapper.Map <Shipping, ShippingResource>(shipping); return(Ok(result)); }
public async Task <IActionResult> Update(string id, [FromBody] ShippingResource shippingResource) { bool isValid = Guid.TryParse(id, out var shippingId); if (!isValid) { return(InvalidId(id)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var shipping = await _unitOfWork.ShippingRepository.GetShipping(shippingId); if (shipping == null) { return(NullOrEmpty()); } _mapper.Map(shippingResource, shipping); if (!await _unitOfWork.CompleteAsync()) { _logger.LogMessage(LoggingEvents.SavedFail, ApplicationConstants.ControllerName.Shipping, shipping.Id); return(FailedToSave(shipping.Id)); } shipping = await _unitOfWork.ShippingRepository.GetShipping(shipping.Id); var result = _mapper.Map <Shipping, ShippingResource>(shipping); _logger.LogMessage(LoggingEvents.Updated, ApplicationConstants.ControllerName.Shipping, shipping.Id); return(Ok(result)); }