Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }