예제 #1
0
        public async Task <BaseApiResponse> CreateWaterCounter(CreateWaterCounter model)
        {
            var validation = Validate(model);

            if (!validation.IsSucceeded)
            {
                return(validation);
            }

            var houseSet = Context.Set <House>();

            var house = await houseSet.FirstOrDefaultAsync(x => x.Id == model.HouseId);

            if (house == null)
            {
                return(new BaseApiResponse(false, MainResources.HouseIsNotFoundByProvidedId));
            }

            //Если у дома узе есть привязанный счетчик воды
            if (house.WaterCounterId.HasValue)
            {
                return(new BaseApiResponse(false, MainResources.HouseAlreadyHasAWaterCounter));
            }

            var waterCounter = new WaterCounter
            {
                FactoryNumber     = model.FactoryNumber,
                CurrentIndication = 0
            };

            Context.Set <WaterCounter>().Add(waterCounter);

            var createWaterCounterResult = await TrySaveChangesAndReturnResultAsync("Ok");

            if (!createWaterCounterResult.IsSucceeded)
            {
                return(new BaseApiResponse(false, "Произошла ошибка при создании счетчика воды"));
            }

            //Устанавиливаю идентифкатор счетчика для дома
            house.WaterCounterId = waterCounter.Id;

            houseSet.Update(house);

            return(await TrySaveChangesAndReturnResultAsync("Счетчик воды создан и привязан к дому"));
        }
예제 #2
0
 public Task <BaseApiResponse> AddWaterCounter(CreateWaterCounter model)
 {
     return(WaterCounterService.CreateWaterCounter(model));
 }