コード例 #1
0
        private MeterDto SaveSmi(MeterDto meterDto)
        {
            var savedMeter = _meterRepository.GetBySerial(meterDto.Serial);
            var meter      = _mapper.Map <MeterDto, Meter>(meterDto);

            if (savedMeter != null)
            {
                return(CheckMeterRegistered(meter, meterDto));
            }

            meter.MeterModel       = _meterModelService.GetExistingMeterModel(meterDto.MeterModel.Name);
            meter.RateType         = _rateTypeService.GetExistingRateType(meterDto.RateType.Name);
            meter.MeterKeys        = _meterKeyService.GetBySerial(meterDto.Serial);
            meter.AccountantStatus = AccountantStatus.NO_INFORMATION;
            var status = _meterForwarderService.ForwardCreation(_mapper.Map <Meter, MeterDto>(meter));

            if (!status.IsSuccessStatusCode)
            {
                throw new BadRequestException(JsonConvert
                                              .DeserializeObject <ErrorMessageDto>(status.Content.ReadAsStringAsync().Result).ErrorMessage);
            }
            var meterUnregisteredDto = _meterUnregisteredService.FindBySerial(meter.Serial);

            if (meterUnregisteredDto != null)
            {
                _meterUnregisteredService.Deactive(meter.Serial);
            }
            return(_mapper.Map <Meter, MeterDto>(_meterRepository.Save(meter)));
        }
コード例 #2
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)));
        }