//public ObligationItemBudgetGridSpec ObligationItemBudgetGridSpec { get; } //public string ObligationItemBudgetGridName { get; } //public string ObligationItemBudgetGridDataUrl { get; } public DetailViewData(FirmaSession currentFirmaSession, ProjectFirmaModels.Models.FundingSource fundingSource, ViewGoogleChartViewData viewGoogleChartViewData, GridSpec <ProjectFirmaModels.Models.ProjectFundingSourceBudget> projectFundingSourceBudgetGridSpec, DisplayFundingSourceCustomAttributesViewData displayFundingSourceCustomAttributeTypesViewData) : base(currentFirmaSession) { ViewGoogleChartViewData = viewGoogleChartViewData; FundingSource = fundingSource; PageTitle = fundingSource.GetDisplayName(); EntityName = $"{FieldDefinitionEnum.FundingSource.ToType().GetFieldDefinitionLabel()}"; UserHasFundingSourceManagePermissions = new FundingSourceEditFeature().HasPermission(currentFirmaSession, fundingSource).HasPermission; UserHasFundingSourceCustomAttributeManagePermissions = new FundingSourceCustomAttributeEditFeature().HasPermission(currentFirmaSession, fundingSource).HasPermission; UserHasProjectFundingSourceExpenditureManagePermissions = new FirmaAdminFeature().HasPermissionByFirmaSession(currentFirmaSession); EditFundingSourceUrl = fundingSource.GetEditUrl(); EditFundingSourceCustomAttributesUrl = SitkaRoute <FundingSourceCustomAttributesController> .BuildUrlFromExpression(c => c.EditFundingSourceCustomAttributesForFundingSource(fundingSource)); var projectFundingSourceExpenditures = FundingSource.ProjectFundingSourceExpenditures.ToList(); CalendarYearsForProjectExpenditures = projectFundingSourceExpenditures.CalculateCalendarYearRangeForExpenditures(fundingSource); ProjectCalendarYearExpendituresGridSpec = new ProjectCalendarYearExpendituresGridSpec(CalendarYearsForProjectExpenditures) { ObjectNameSingular = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()}", ObjectNamePlural = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}", SaveFiltersInCookie = true }; ProjectCalendarYearExpendituresGridName = "projectsCalendarYearExpendituresFromFundingSourceGrid"; ProjectCalendarYearExpendituresGridDataUrl = SitkaRoute <FundingSourceController> .BuildUrlFromExpression(tc => tc.ProjectCalendarYearExpendituresGridJsonData(fundingSource)); ManageFundingSourcesUrl = SitkaRoute <FundingSourceController> .BuildUrlFromExpression(c => c.Index()); ProjectFundingSourceBudgetGridSpec = projectFundingSourceBudgetGridSpec; ProjectFundingSourceBudgetGridName = "projectsFundingSourceRequestsFromFundingSourceGrid"; ProjectFundingSourceBudgetGridDataUrl = SitkaRoute <FundingSourceController> .BuildUrlFromExpression(tc => tc.ProjectFundingSourceBudgetGridJsonData(fundingSource)); DisplayFundingSourceCustomAttributeTypesViewData = displayFundingSourceCustomAttributeTypesViewData; ContractualInvoiceGridName = "fundingSourceContractualInvoicesGrid"; ContractualInvoiceGridSpec = new ContractualInvoiceGridSpec(currentFirmaSession); ContractualInvoiceGridDataUrl = SitkaRoute <FundingSourceController> .BuildUrlFromExpression(fc => fc.ContractualInvoiceGridOnFundDetailJsonData(fundingSource)); //ObligationItemBudgetGridName = "fundingSourceContractualInvoicesGrid"; //ObligationItemBudgetGridSpec = new ObligationItemBudgetGridSpec(currentFirmaSession); //ObligationItemBudgetGridDataUrl = SitkaRoute<FundingSourceController>.BuildUrlFromExpression(fc => fc.ObligationItemBudgetGridOnFundDetailJsonData(fundingSource)); }
public ViewResult Detail(FundingSourcePrimaryKey fundingSourcePrimaryKey) { var fundingSource = fundingSourcePrimaryKey.EntityObject; var taxonomyTrunks = HttpRequestStorage.DatabaseEntities.TaxonomyTrunks.ToList().SortByOrderThenName().ToList(); const string chartTitle = "Reported Expenditures"; var chartContainerID = chartTitle.Replace(" ", ""); // If ProjectFundingSourceExpenditures is empty, ToGoogleChart returns null... var googleChart = fundingSource.ProjectFundingSourceExpenditures .ToGoogleChart(x => x.Project.TaxonomyLeaf.TaxonomyBranch.TaxonomyTrunk.GetDisplayName(), taxonomyTrunks.Select(x => x.GetDisplayName()).ToList(), x => x.Project.TaxonomyLeaf.TaxonomyBranch.TaxonomyTrunk.GetDisplayName(), chartContainerID, fundingSource.GetDisplayName(), null); googleChart?.GoogleChartConfiguration.Legend.SetLegendPosition(GoogleChartLegendPosition.None); var projectFundingSourceBudgetGridSpec = new ProjectFundingSourceBudgetGridSpec() { ObjectNameSingular = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()}", ObjectNamePlural = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}", SaveFiltersInCookie = true }; var viewGoogleChartViewData = new ViewGoogleChartViewData(googleChart, chartTitle, 350, false); var fundingSourceCustomAttributeTypes = HttpRequestStorage.DatabaseEntities.FundingSourceCustomAttributeTypes.ToList().Where(x => x.HasViewPermission(CurrentFirmaSession)); var projectCustomAttributeTypesViewData = new DisplayFundingSourceCustomAttributesViewData( fundingSourceCustomAttributeTypes.ToList(), new List <FundingSourceCustomAttribute>(fundingSource.FundingSourceCustomAttributes.ToList())); var viewData = new DetailViewData(CurrentFirmaSession, fundingSource, viewGoogleChartViewData, projectFundingSourceBudgetGridSpec, projectCustomAttributeTypesViewData); return(RazorView <Detail, DetailViewData>(viewData)); }