public async Task <ActionResult> UpdateAsync(int id, [FromBody] UpdateGatewayDto resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var toUpdate = _mapper.Map <UpdateGatewayDto, Gateway>(resource); var result = await _gatewayService.UpdateAsync(id, toUpdate); if (!result.Success) { return(BadRequest(result.Message)); } var updated = _mapper.Map <Gateway, GatewayDto>(result.Gateway); return(Ok(updated)); }
public GatewayDto Update(UpdateGatewayDto input) { var entity = _gatewayRepository.Get(input.Id); var cityQuery = _cityRepository.GetAll().Where(c => c.CityName == input.CityName); if (!cityQuery.Any()) { throw new ApplicationException("City不存在"); } var factoryQuery = _factoryRepository.GetAll().Where(f => f.FactoryName == input.FactoryName); if (!factoryQuery.Any()) { throw new ApplicationException("Factory不存在"); } var factory = factoryQuery.FirstOrDefault(); if (factory != null) { factory.City = cityQuery.FirstOrDefault(); var workshopQuery = _workshopRepository.GetAll().Where(w => w.WorkshopName == input.WorkshopName); if (!workshopQuery.Any()) { throw new ApplicationException("Workshop不存在"); } var workshop = workshopQuery.FirstOrDefault(); if (workshop != null) { workshop.Factory = factory; ObjectMapper.Map(input, entity); entity.Workshop = workshop; } } var result = _gatewayRepository.Update(entity); CurrentUnitOfWork.SaveChanges(); return(ObjectMapper.Map <GatewayDto>(result)); }