Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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)));
        }