public GridJsonNetJObjectResult <Program> IndexGridJsonData() { var gridSpec = new ProgramGridSpec(CurrentPerson, null); var programs = HttpRequestStorage.DatabaseEntities.Programs.ToList().OrderBy(x => x.ProgramName).ToList(); var gridJsonNetJObjectResult = new GridJsonNetJObjectResult <Program>(programs, gridSpec); return(gridJsonNetJObjectResult); }
public GridJsonNetJObjectResult <Program> ProgramGridJsonData(OrganizationPrimaryKey organizationPrimaryKey) { var organization = organizationPrimaryKey.EntityObject; var gridSpec = new ProgramGridSpec(CurrentPerson, organization); var programs = organization.Programs.ToList(); var gridJsonNetJObjectResult = new GridJsonNetJObjectResult <Program>(programs, gridSpec); return(gridJsonNetJObjectResult); }
public DetailViewData(Person currentPerson, Models.Organization organization, MapInitJson mapInitJson, bool hasSpatialData, List <Models.PerformanceMeasure> performanceMeasures, ViewGoogleChartViewData expendituresDirectlyFromOrganizationViewGoogleChartViewData, ViewGoogleChartViewData expendituresReceivedFromOtherOrganizationsViewGoogleChartViewData, bool atLeastOneAgreementHasFile) : base(currentPerson) { Organization = organization; PageTitle = organization.DisplayName; EntityName = $"{Models.FieldDefinition.Organization.GetFieldDefinitionLabel()}"; UserHasOrganizationManagePermissions = new OrganizationManageFeature().HasPermissionByPerson(CurrentPerson); EditOrganizationUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression(c => c.Edit(organization)); EditBoundaryUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression(c => c.EditBoundary(organization)); DeleteOrganizationBoundaryUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( c => c.DeleteOrganizationBoundary(organization)); ProjectsIncludingLeadImplementingGridSpec = new ProjectsIncludingLeadImplementingGridSpec(organization, CurrentPerson, false) { ObjectNameSingular = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} associated with {organization.DisplayName}", SaveFiltersInCookie = true }; ProjectOrganizationsGridName = "projectOrganizationsFromOrganizationGrid"; ProjectOrganizationsGridDataUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( tc => tc.ProjectsIncludingLeadImplementingGridJsonData(organization)); AgreementOrganizationsGridSpec = new AgreementGridSpec(CurrentPerson, atLeastOneAgreementHasFile, false, false) { CustomExcelDownloadUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression(tc => tc.AgreementsExcelDownload(organization.PrimaryKey)) }; AgreementOrganizationsGridName = "agreementOrganizationsFromOrganizationGrid"; AgreementOrganizationsGridDataUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( tc => tc.AgreementOrganizationGridJsonData(organization)); ProjectStewardOrLeadImplementorFieldDefinitionName = MultiTenantHelpers.HasCanStewardProjectsOrganizationRelationship() ? Models.FieldDefinition.ProjectsStewardOrganizationRelationshipToProject.GetFieldDefinitionLabel() : "Lead Implementer"; ProjectGrantAllocationExpendituresForOrganizationGridSpec = new ProjectGrantAllocationExpendituresForOrganizationGridSpec(organization) { ObjectNameSingular = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} {Models.FieldDefinition.ReportedExpenditure.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} {Models.FieldDefinition.ReportedExpenditure.GetFieldDefinitionLabelPluralized()}", SaveFiltersInCookie = true }; ProjectGrantAllocationExpendituresForOrganizationGridName = "projectCalendarYearExpendituresForOrganizationGrid"; ProjectGrantAllocationExpendituresForOrganizationGridDataUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( tc => tc.ProjectGrantAllocationExpendituresForOrganizationGridJsonData(organization)); // Might be too weak; do we want to make this more specific? ManageGrantAllocationsUrl = SitkaRoute <GrantController> .BuildUrlFromExpression(c => c.Index()); IndexUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression(c => c.Index()); MapInitJson = mapInitJson; HasSpatialData = hasSpatialData; ExpendituresDirectlyFromOrganizationViewGoogleChartViewData = expendituresDirectlyFromOrganizationViewGoogleChartViewData; ExpendituresReceivedFromOtherOrganizationsViewGoogleChartViewData = expendituresReceivedFromOtherOrganizationsViewGoogleChartViewData; PerformanceMeasureChartViewDatas = performanceMeasures.Select(x => organization.GetPerformanceMeasureChartViewData(x, currentPerson)).ToList(); ShowProposals = currentPerson.CanViewProposals; ProposalsPanelHeader = MultiTenantHelpers.ShowApplicationsToThePublic() ? Models.FieldDefinition.Application.GetFieldDefinitionLabelPluralized() : $"{Models.FieldDefinition.Application.GetFieldDefinitionLabelPluralized()} (Not Visible to the Public)"; ProposalsGridSpec = new ProjectsIncludingLeadImplementingGridSpec(organization, CurrentPerson, true) { ObjectNameSingular = $"{Models.FieldDefinition.Application.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Application.GetFieldDefinitionLabelPluralized()} associated with {organization.DisplayName}", SaveFiltersInCookie = true }; ProposalsGridName = "proposalsGrid"; ProposalsGridDataUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( tc => tc.ProposalsGridJsonData(organization)); ProgramGridSpec = new ProgramGridSpec(CurrentPerson, organization) { ObjectNameSingular = $"{Models.FieldDefinition.Program.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Program.GetFieldDefinitionLabelPluralized()} associated with {organization.DisplayName}", SaveFiltersInCookie = true }; ProgramGridName = "organizationProgramGrid"; ProgramGridDataUrl = SitkaRoute <ProgramController> .BuildUrlFromExpression( tc => tc.ProgramGridJsonData(organization)); ShowPendingProjects = currentPerson.CanViewPendingProjects; PendingProjectsGridSpec = new ProjectsIncludingLeadImplementingGridSpec(organization, CurrentPerson, true) { ObjectNameSingular = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()}", ObjectNamePlural = $"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()} associated with {organization.DisplayName}", SaveFiltersInCookie = true }; PendingProjectsGridName = "pendingProjectsGrid"; PendingProjectsGridDataUrl = SitkaRoute <OrganizationController> .BuildUrlFromExpression( tc => tc.PendingProjectsGridJsonData(organization)); TenantHasCanStewardProjectsOrganizationRelationship = MultiTenantHelpers.HasCanStewardProjectsOrganizationRelationship(); var allAssociatedProjects = Organization.GetAllAssociatedProjectsForOrgVisibleToUser(CurrentPerson); NumberOfStewardedProjects = allAssociatedProjects .Distinct() .Count(x => x.IsActiveProject() && x.GetCanStewardProjectsOrganization() == Organization); NumberOfLeadImplementedProjects = allAssociatedProjects .Distinct() .Count(x => x.IsActiveProject() && x.GetPrimaryContactOrganization() == Organization); NumberOfProjectsContributedTo = allAssociatedProjects.Distinct().ToList().GetActiveProjectsVisibleToUser(currentPerson).Count; }