Exemplo n.º 1
0
        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);
        }