Ejemplo n.º 1
0
        private WaterUsageOverviewDto GetWaterUsageOverviewDtoForParcelIDs(List <int> parcelIDs)
        {
            var parcelMonthlyEvapotranspirationDtos =
                ParcelMonthlyEvapotranspiration.ListByParcelID(_dbContext, parcelIDs).ToList();

            var cumulativeWaterUsageByYearDtos = parcelMonthlyEvapotranspirationDtos.GroupBy(x => x.WaterYear).Select(x =>
                                                                                                                      new CumulativeWaterUsageByYearDto
            {
                Year = x.Key, CumulativeWaterUsage = GetCurrentWaterUsageOverview(x)
            }).ToList();

            var historicWaterUsageOverview =
                GetHistoricWaterUsageOverview(cumulativeWaterUsageByYearDtos.SelectMany(x => x.CumulativeWaterUsage).ToList());

            // the chart needs value to be non null, so we need to set the cumulativewaterusage values to be 0 for the null ones; we need them to be null originally when calculating historic since we don't want them to count
            foreach (var cumulativeWaterUsageByMonthDto in cumulativeWaterUsageByYearDtos
                     .SelectMany(x => x.CumulativeWaterUsage).Where(y => y.CumulativeWaterUsageInAcreFeet == null))
            {
                cumulativeWaterUsageByMonthDto.CumulativeWaterUsageInAcreFeet = 0;
            }

            var waterUsageOverviewDto = new WaterUsageOverviewDto
            {
                Current = cumulativeWaterUsageByYearDtos, Historic = historicWaterUsageOverview
            };

            return(waterUsageOverviewDto);
        }
Ejemplo n.º 2
0
        public ActionResult <WaterUsageByParcelDto> GetWaterUsageByAccountIDAndYear([FromRoute] int accountID,
                                                                                    [FromRoute] int year)
        {
            var parcelDtos = Parcel.ListByAccountIDAndYear(_dbContext, accountID, year).ToList();
            var parcelIDs  = parcelDtos.Select(x => x.ParcelID).ToList();

            var parcelMonthlyEvapotranspirationDtos =
                ParcelMonthlyEvapotranspiration.ListByParcelIDAndYear(_dbContext, parcelIDs, parcelDtos, year);
            var monthlyWaterUsageDtos = parcelMonthlyEvapotranspirationDtos
                                        .GroupBy(x => x.WaterMonth)
                                        .OrderBy(x => x.Key)
                                        .Select(x =>
                                                new MonthlyWaterUsageDto()
            {
                Month = ((DateUtilities.Month)x.Key).ShortMonthName(),
                WaterUsageByParcel = x.OrderBy(y => y.ParcelNumber).Select(y => new ParcelWaterUsageDto
                {
                    ParcelNumber         = y.ParcelNumber,
                    WaterUsageInAcreFeet = y.OverriddenEvapotranspirationRate ?? y.EvapotranspirationRate ?? 0,
                    IsOverridden         = y.OverriddenEvapotranspirationRate != null,
                    IsEmpty = y.IsEmpty
                }).ToList()
            })
                                        .ToList();
            var waterUsageDto = new WaterUsageByParcelDto {
                Year = year, WaterUsage = monthlyWaterUsageDtos.ToList()
            };

            return(Ok(waterUsageDto));
        }
Ejemplo n.º 3
0
        public ActionResult <int> SaveParcelMonthlyEvapotranspirationOverrideValues([FromRoute] int accountID, [FromRoute] int year,
                                                                                    [FromBody] List <ParcelMonthlyEvapotranspirationDto> overriddenValues)
        {
            var numChanging = ParcelMonthlyEvapotranspiration.SaveParcelMonthlyUsageOverrides(_dbContext, accountID, year, overriddenValues);

            return(Ok(numChanging));
        }
Ejemplo n.º 4
0
        public ActionResult <List <ParcelMonthlyEvapotranspirationDto> > ListWaterUsagesByParcelAndAccountID([FromRoute] int accountID, [FromRoute] int year)
        {
            var parcelDtos = Parcel.ListByAccountIDAndYear(_dbContext, accountID, year).OrderBy(x => x.ParcelID).ToList();
            var parcelIDs  = parcelDtos.Select(x => x.ParcelID).ToList();
            var parcelMonthlyEvapotranspirationDtos =
                ParcelMonthlyEvapotranspiration.ListByParcelIDAndYear(_dbContext, parcelIDs, parcelDtos, year);

            return(Ok(parcelMonthlyEvapotranspirationDtos));
        }
Ejemplo n.º 5
0
        public ActionResult <ParcelAllocationAndConsumptionDto> GetAllocationAndConsumption([FromRoute] int parcelID)
        {
            var parcelDto = Parcel.GetByParcelID(_dbContext, parcelID);

            if (ThrowNotFound(parcelDto, "Parcel", parcelID, out var actionResult))
            {
                return(actionResult);
            }

            var parcelMonthlyEvapotranspirationDtos = ParcelMonthlyEvapotranspiration.ListByParcelID(_dbContext, parcelID);

            return(Ok(parcelMonthlyEvapotranspirationDtos));
        }