コード例 #1
0
ファイル: ParcelController.cs プロジェクト: sitkatech/rio
        public ActionResult <IEnumerable <ParcelAllocationAndUsageDto> > GetParcelsWithAllocationAndUsageByYear([FromRoute] int year)
        {
            var parcelDtos = ParcelAllocationAndUsage.GetByYear(_dbContext, year);
            var parcelAllocationBreakdownForYear = ParcelAllocation.GetParcelAllocationBreakdownForYear(_dbContext, year);
            var parcelDtosWithAllocation         = parcelDtos
                                                   .GroupJoin(
                parcelAllocationBreakdownForYear,
                x => x.ParcelID,
                y => y.ParcelID,
                (x, y) => new
            {
                ParcelAllocationAndUsage  = x,
                ParcelAllocationBreakdown = y
            })
                                                   .SelectMany(
                parcelAllocationUsageAndBreakdown =>
                parcelAllocationUsageAndBreakdown.ParcelAllocationBreakdown.DefaultIfEmpty(),
                (x, y) =>
            {
                x.ParcelAllocationAndUsage.Allocations = y?.Allocations;
                return(x.ParcelAllocationAndUsage);
            });

            return(Ok(parcelDtosWithAllocation));
        }
コード例 #2
0
ファイル: ParcelController.cs プロジェクト: sitkatech/rio
        public async Task <ActionResult> BulkSetAnnualParcelAllocationFileUpload([FromRoute] int waterYear,
                                                                                 [FromRoute] int parcelAllocationTypeID)
        {
            var fileResource = await HttpUtilities.MakeFileResourceFromHttpRequest(Request, _dbContext, HttpContext);

            var parcelAllocationTypeDisplayName =
                _dbContext.ParcelAllocationType.Single(x => x.ParcelAllocationTypeID == parcelAllocationTypeID).ParcelAllocationTypeName;

            if (!ParseBulkSetAllocationUpload(fileResource, parcelAllocationTypeDisplayName, out var records, out var badRequestFromUpload))
            {
                return(badRequestFromUpload);
            }

            if (!ValidateBulkSetAllocationUpload(records, parcelAllocationTypeDisplayName, out var badRequestFromValidation))
            {
                return(badRequestFromValidation);
            }

            _dbContext.FileResource.Add(fileResource);
            _dbContext.SaveChanges();

            ParcelAllocation.BulkSetAllocation(_dbContext, records, waterYear, parcelAllocationTypeID);

            ParcelAllocationHistory.CreateParcelAllocationHistoryEntity(_dbContext,
                                                                        UserContext.GetUserFromHttpContext(_dbContext, HttpContext).UserID, fileResource.FileResourceID, waterYear,
                                                                        parcelAllocationTypeID, null);

            return(Ok());
        }
コード例 #3
0
ファイル: ParcelController.cs プロジェクト: sitkatech/rio
        public ActionResult BulkSetAnnualParcelAllocation([FromRoute] int userID, [FromBody] ParcelAllocationUpsertDto parcelAllocationUpsertDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var numberOfParcels = ParcelAllocation.BulkSetAllocation(_dbContext, parcelAllocationUpsertDto);

            ParcelAllocationHistory.CreateParcelAllocationHistoryEntity(_dbContext, userID, parcelAllocationUpsertDto, null);

            return(Ok(numberOfParcels));
        }
コード例 #4
0
ファイル: ParcelController.cs プロジェクト: sitkatech/rio
        public ActionResult <List <ParcelAllocationDto> > GetAllocations([FromRoute] int parcelID)
        {
            var parcelDto = Parcel.GetByParcelID(_dbContext, parcelID);

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

            var parcelAllocationDtos = ParcelAllocation.ListByParcelID(_dbContext, parcelID);

            return(Ok(parcelAllocationDtos));
        }
コード例 #5
0
        public ActionResult <List <ParcelAllocationDto> > ListParcelsAllocationByAccountID([FromRoute] int accountID, [FromRoute] int year)
        {
            var parcelDtosEnumerable = Parcel.ListByAccountIDAndYear(_dbContext, accountID, year);

            if (parcelDtosEnumerable == null)
            {
                return(NotFound());
            }

            var parcelDtos           = parcelDtosEnumerable.ToList();
            var parcelIDs            = parcelDtos.Select(x => x.ParcelID).ToList();
            var parcelAllocationDtos = ParcelAllocation.ListByParcelID(_dbContext, parcelIDs);

            return(Ok(parcelAllocationDtos));
        }
コード例 #6
0
ファイル: UserController.cs プロジェクト: sitkatech/rio
        public ActionResult <List <LandownerUsageReportDto> > GetLandOwnerUsageReport([FromRoute] int year)
        {
            var landownerUsageReportDtos = LandownerUsageReport.GetByYear(_dbContext, year);

            var landownerAllocationBreakdownForYear = ParcelAllocation.GetLandownerAllocationBreakdownForYear(_dbContext, year);

            var landownerUsageReportDtosWithAllocation = landownerUsageReportDtos.Join(
                landownerAllocationBreakdownForYear, x => x.AccountID, y => y.AccountID,
                (x, y) =>
            {
                x.Allocations = y.Allocations;
                return(x);
            });


            return(Ok(landownerUsageReportDtosWithAllocation));
        }