public KeysDto Update(KeysDto keysDto) { var meterKeys = GetExistingMeterKey(keysDto.Serial); meterKeys.UpdateFields(keysDto); var meter = _meterRepository.GetBySerial(keysDto.Serial); if (meter == null) { return(_mapper.Map <MeterKeys, KeysDto>(_meterKeyRepository.Update(meterKeys))); } HttpResponseMessage status; meter.MeterKeys = meterKeys; if (meter.Smc == null) { status = _meterForwarderService.ForwardEdition(_mapper.Map <Meter, MeterDto>(meter)); } else { var smc = _mapper.Map <SmcDto>(meter.Smc); smc.KeysDto = keysDto; status = _smcForwarderService.ForwardEdition(smc); } if (!status.IsSuccessStatusCode) { throw new BadRequestException(JsonConvert .DeserializeObject <ErrorMessageDto>(status.Content.ReadAsStringAsync().Result).ErrorMessage); } return(_mapper.Map <MeterKeys, KeysDto>(_meterKeyRepository.Update(meterKeys))); }
private MeterDto CheckSmcMeterRegistered(Meter meter, MeterDto meterDto, Smc smc) { if (meter.Active) { throw new ExistentEntityException("O medidor de serial " + meter.Serial + " já existe"); } meter.UpdateFields(meter, _meterModelService.GetExistingMeterModel(meter.MeterModel.Name), _rateTypeService.GetExistingRateType(meterDto.RateType.Name), smc, _meterKeyService.GetBySerial(smc.Serial)); CheckSmcPositions(meter); meter.Active = true; var status = _meterForwarderService.ForwardEdition(_mapper.Map <Meter, MeterDto>(meter)); if (!status.IsSuccessStatusCode) { throw new BadRequestException(JsonConvert .DeserializeObject <ErrorMessageDto>(status.Content.ReadAsStringAsync().Result).ErrorMessage); } return(_mapper.Map <Meter, MeterDto>( _meterRepository.Update(meter))); }