public async Task <ActionResult <RequestResource> > UpdateRequest(int id, [FromBody] SaveRequestResource saveRequestResource) { var validator = new SaveRequestResourceValidator(); var validationResult = await validator.ValidateAsync(saveRequestResource); var requestIsInvalid = id == 0 || !validationResult.IsValid; if (requestIsInvalid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var requestToBeUpdate = await _requestService.GetRequestById(id); if (requestToBeUpdate == null) { return(NotFound()); } var request = _mapper.Map <SaveRequestResource, Request>(saveRequestResource); await _requestService.UpdateRequest(requestToBeUpdate, request); var updatedRequest = await _requestService.GetRequestById(id); var updatedRequestResource = _mapper.Map <Request, RequestResource>(updatedRequest); return(Ok(updatedRequestResource)); }
public async Task <ActionResult <RequestResource> > CreateRequest([FromBody] SaveRequestResource saveRequestResource) { var validator = new SaveRequestResourceValidator(); var validationResult = await validator.ValidateAsync(saveRequestResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var requestToCreate = _mapper.Map <SaveRequestResource, Request>(saveRequestResource); var newRequest = await _requestService.CreateRequest(requestToCreate); var request = await _requestService.GetRequestById(newRequest.Id); var requestResource = _mapper.Map <Request, RequestResource>(request); return(Ok(requestResource)); }