public GridJsonNetJObjectResult <GrantAllocationExpenditure> GrantAllocationExpendituresGridJsonData(GrantAllocationPrimaryKey grantAllocationPrimaryKey) { var grantAllocation = grantAllocationPrimaryKey.EntityObject; var grantAllocationExpenditures = grantAllocation.GrantAllocationExpenditures.ToList(); var gridSpec = new GrantAllocationExpendituresGridSpec(); var gridJsonNetJObjectResult = new GridJsonNetJObjectResult <GrantAllocationExpenditure>(grantAllocationExpenditures, gridSpec); return(gridJsonNetJObjectResult); }
public ViewResult GrantAllocationDetail(GrantAllocationPrimaryKey grantAllocationPrimaryKey) { var grantAllocation = grantAllocationPrimaryKey.EntityObject; if (grantAllocation == null) { throw new Exception($"Could not find GrantAllocationID # {grantAllocationPrimaryKey.PrimaryKeyValue}; has it been deleted?"); } var taxonomyLevel = MultiTenantHelpers.GetTaxonomyLevel(); var grantAllocationBasicsViewData = new GrantAllocationBasicsViewData(grantAllocation, false, taxonomyLevel); var userHasEditGrantAllocationPermissions = new GrantAllocationEditAsAdminFeature().HasPermissionByPerson(CurrentPerson); var grantAllocationNotesViewData = new EntityNotesViewData( EntityNote.CreateFromEntityNote(new List <IEntityNote>(grantAllocation.GrantAllocationNotes)), SitkaRoute <GrantAllocationController> .BuildUrlFromExpression(x => x.NewGrantAllocationNote(grantAllocationPrimaryKey)), grantAllocation.GrantAllocationName, userHasEditGrantAllocationPermissions); var grantAllocationNoteInternalsViewData = new EntityNotesViewData( EntityNote.CreateFromEntityNote(new List <IEntityNote>(grantAllocation.GrantAllocationNoteInternals)), SitkaRoute <GrantAllocationController> .BuildUrlFromExpression(x => x.NewGrantAllocationNoteInternal(grantAllocationPrimaryKey)), grantAllocation.GrantAllocationName, userHasEditGrantAllocationPermissions); var costTypes = CostType.All.Where(x => x.IsValidInvoiceLineItemCostType).OrderBy(x => x.CostTypeDisplayName).ToList(); const string chartTitle = "Grant Allocation Expenditures"; var chartContainerID = chartTitle.Replace(" ", ""); // If ProjectGrantAllocationExpenditures is empty, ToGoogleChart returns null... var googleChart = grantAllocation.GrantAllocationExpenditures .ToGoogleChart(x => x.CostType?.CostTypeDisplayName, costTypes.Select(x => x.CostTypeDisplayName).ToList(), x => x.CostType?.CostTypeDisplayName, chartContainerID, grantAllocation.DisplayName); // Which makes this guy bork (bork bork bork) googleChart?.GoogleChartConfiguration.Legend.SetLegendPosition(GoogleChartLegendPosition.Top); var viewGoogleChartViewData = new ViewGoogleChartViewData(googleChart, chartTitle, 350, false); var projectGrantAllocationRequestsGridSpec = new ProjectGrantAllocationRequestsGridSpec() { ObjectNameSingular = "Project", ObjectNamePlural = "Projects", SaveFiltersInCookie = true }; var grantAllocationExpendituresGridSpec = new GrantAllocationExpendituresGridSpec(); var grantAllocationAwardsGridSpec = new GrantAllocationAwardGridSpec(CurrentPerson, grantAllocation); var viewData = new Views.GrantAllocation.DetailViewData(CurrentPerson, grantAllocation, grantAllocationBasicsViewData, grantAllocationNotesViewData, grantAllocationNoteInternalsViewData, viewGoogleChartViewData, projectGrantAllocationRequestsGridSpec, grantAllocationExpendituresGridSpec, grantAllocationAwardsGridSpec); return(RazorView <Views.GrantAllocation.Detail, Views.GrantAllocation.DetailViewData>(viewData)); }