public async Task <ActionResult <ServiceRequestViewModel> > PutServiceRequest(int id, ServiceRequestEditModel serviceRequestModel) { ServiceRequest serviceRequest = await _serviceRequestsRepository.FindByIdAsync(id); if (serviceRequest is null) { return(BadRequest($"No existe ninguna solicitud de servicio con el código {id}.")); } _mapper.Map(serviceRequestModel, serviceRequest); serviceRequest.PublishEvent(new UpdatedServiceRequest(serviceRequest)); _serviceRequestsRepository.Update(serviceRequest); try { await _unitWork.SaveAsync(); } catch (DbUpdateConcurrencyException) { if (!ServiceRequestExists(id)) { return(NotFound($"Actualización fallida. No existe ninguna solicitud de servicio con el código {id}.")); } throw; } return(_mapper.Map <ServiceRequestViewModel>(serviceRequest)); }
public async Task Update_Existing_ServiceRequest() { ServiceRequest serviceRequest = await _serviceRequestsRepository.FindByIdAsync(1); Assert.IsNotNull(serviceRequest); serviceRequest.State = ServiceRequestState.Accepted; _serviceRequestsRepository.Update(serviceRequest); await _dbContext.SaveChangesAsync(); serviceRequest = await _serviceRequestsRepository.FindByIdAsync(1); Assert.AreEqual(ServiceRequestState.Accepted, serviceRequest.State); }