private static LtInfoMenuItem BuildProgramInfoMenu(FirmaSession currentFirmaSession) { var programInfoMenu = new LtInfoMenuItem(FirmaMenuItem.ProgramInfo.GetFirmaMenuItemDisplayName()); programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProgramInfoController>(c => c.Taxonomy()), currentFirmaSession, MultiTenantHelpers.GetTaxonomySystemName(), "Group1")); MultiTenantHelpers.GetClassificationSystems().ForEach(x => { programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProgramInfoController>(c => c.ClassificationSystem(x.ClassificationSystemID)), currentFirmaSession, ClassificationSystemModelExtensions.GetClassificationSystemNamePluralized(x), "Group1")); }); programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <PerformanceMeasureController>(c => c.Index()), currentFirmaSession, MultiTenantHelpers.GetPerformanceMeasureNamePluralized(), "Group1")); foreach (var geospatialAreaType in HttpRequestStorage.DatabaseEntities.GeospatialAreaTypes.ToList()) { programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <GeospatialAreaController>(c => c.Index(geospatialAreaType)), currentFirmaSession, $"{geospatialAreaType.GeospatialAreaTypeNamePluralized}", "Group2")); } if (MultiTenantHelpers.HasCanStewardProjectsOrganizationRelationship()) { programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectStewardOrganizationController>(c => c.Index()), currentFirmaSession, $"{FieldDefinitionEnum.ProjectStewardOrganizationDisplayName.ToType().GetFieldDefinitionLabelPluralized()}", "Group3")); } programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <OrganizationController>(c => c.Index()), currentFirmaSession, $"{FieldDefinitionEnum.Organization.ToType().GetFieldDefinitionLabelPluralized()}", "Group3")); programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <FundingSourceController>(c => c.Index()), currentFirmaSession, $"{FieldDefinitionEnum.FundingSource.ToType().GetFieldDefinitionLabelPluralized()}", "Group3")); programInfoMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <WebServicesController>(c => c.Index()), currentFirmaSession, $"Web Services", "Group4")); AddCustomPagesToMenu(currentFirmaSession, FirmaMenuItem.ProgramInfo, programInfoMenu, "Group5"); return(programInfoMenu); }
public ProjectExcelSpec() { var organizationFieldDefinitionLabelSingle = Models.FieldDefinition.Organization.GetFieldDefinitionLabel(); AddColumn(Models.FieldDefinition.ProjectName.GetFieldDefinitionLabel(), x => x.ProjectName); var organizationFieldDefinitionLabelPluralized = Models.FieldDefinition.Organization.GetFieldDefinitionLabelPluralized(); var allProjectGrantAllocationExpenditures = HttpRequestStorage.DatabaseEntities.ProjectGrantAllocationExpenditures.ToList(); var projectGrantAllocationExpenditureDict = allProjectGrantAllocationExpenditures.GroupBy(x => x.ProjectID).ToDictionary(x => x.Key, y => y.ToList()); AddColumn($"Non-Lead Implementing {organizationFieldDefinitionLabelPluralized}", x => { return(string.Join(",", x.GetAssociatedOrganizations(organizationFieldDefinitionLabelSingle, organizationFieldDefinitionLabelPluralized, projectGrantAllocationExpenditureDict) .Select(pio => pio.Organization.DisplayName))); }); AddColumn(Models.FieldDefinition.ProjectStage.GetFieldDefinitionLabel(), x => x.ProjectStage.ProjectStageDisplayName); MultiTenantHelpers.GetClassificationSystems().ForEach(y => { AddColumn(y.ClassificationSystemNamePluralized, x => string.Join(",", x.ProjectClassifications.Where(z => z.Classification.ClassificationSystem == y).Select(tc => tc.Classification.DisplayName))); }); AddColumn(Models.FieldDefinition.PriorityLandscape.GetFieldDefinitionLabelPluralized(), x => string.Join(",", x.GetProjectPriorityLandscapes().Select(y => y.PriorityLandscapeName))); AddColumn("Regions", x => string.Join(",", x.GetProjectRegions().Select(y => y.DNRUplandRegionName))); AddColumn(Models.FieldDefinition.ProjectInitiationDate.GetFieldDefinitionLabel(), x => x.GetImplementationStartYear()); AddColumn(Models.FieldDefinition.CompletionDate.GetFieldDefinitionLabel(), x => x.GetCompletionYear()); AddColumn(Models.FieldDefinition.ProjectDescription.GetFieldDefinitionLabel(), x => x.ProjectDescription); AddColumn(Models.FieldDefinition.EstimatedTotalCost.GetFieldDefinitionLabel(), x => x.EstimatedTotalCost); AddColumn(Models.FieldDefinition.ProjectGrantAllocationRequestTotalAmount.GetFieldDefinitionLabel(), x => x.GetTotalFunding()); AddColumn("State", a => a.ProjectLocationStateProvince); AddColumn($"{Models.FieldDefinition.ProjectLocation.GetFieldDefinitionLabel()} Notes", a => a.ProjectLocationNotes); }
private static LtInfoMenuItem BuildProjectsMenu(Person currentPerson) { var projectsMenu = new LtInfoMenuItem($"{Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}"); projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ResultsController>(c => c.ProjectMap()), currentPerson, $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Map", "Group1")); projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectController>(c => c.Index()), currentPerson, $"Full {Models.FieldDefinition.Project.GetFieldDefinitionLabel()} List", "Group2")); projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProgramInfoController>(c => c.Taxonomy()), currentPerson, MultiTenantHelpers.GetTaxonomySystemName(), "Group2")); MultiTenantHelpers.GetClassificationSystems().ForEach(x => { projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProgramInfoController>(c => c.ClassificationSystem(x.ClassificationSystemID)), currentPerson, x.ClassificationSystemDefinition, "Group2")); }); projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectController>(c => c.Proposed()), currentPerson, $"{Models.FieldDefinition.Application.GetFieldDefinitionLabelPluralized()}", "Group3")); projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectController>(c => c.Pending()), currentPerson, $"Pending {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}", "Group3")); if (new GrantAllocationAwardLandownerCostShareLineItemViewFeature().HasPermissionByPerson(currentPerson)) { projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <GrantAllocationAwardLandownerCostShareLineItemController>(tac => tac.Index()), currentPerson, "DNR Cost Share Treatments", "Group4")); } projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <InteractionEventController>(iec => iec.Index()), currentPerson, $"Full {Models.FieldDefinition.InteractionEvent.GetFieldDefinitionLabelPluralized()} List", "Group5")); MultiTenantHelpers.GetCustomPagesByNavigationSection(CustomPageNavigationSectionEnum.Projects).ForEach(x => { var isVisible = x.CustomPageDisplayType == CustomPageDisplayType.Public || (!currentPerson.IsAnonymousUser && x.CustomPageDisplayType == CustomPageDisplayType.Protected); if (isVisible) { projectsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <CustomPageController>(c => c.About(x.CustomPageVanityUrl)), currentPerson, x.CustomPageDisplayName, "Group6")); } }); return(projectsMenu); }
private static LtInfoMenuItem BuildManageMenu(FirmaSession currentFirmaSession) { var manageMenu = new LtInfoMenuItem("Manage"); // Group 1 - Project Classifications Stuff (taxonomies, classification systems, PMs) if (MultiTenantHelpers.IsTaxonomyLevelTrunk()) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TaxonomyTrunkController>(c => c.Manage()), currentFirmaSession, FieldDefinitionEnum.TaxonomyTrunk.ToType().GetFieldDefinitionLabelPluralized(), "Group1")); } if (!MultiTenantHelpers.IsTaxonomyLevelLeaf()) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TaxonomyBranchController>(c => c.Manage()), currentFirmaSession, FieldDefinitionEnum.TaxonomyBranch.ToType().GetFieldDefinitionLabelPluralized(), "Group1")); } manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TaxonomyLeafController>(c => c.Manage()), currentFirmaSession, FieldDefinitionEnum.TaxonomyLeaf.ToType().GetFieldDefinitionLabelPluralized(), "Group1")); MultiTenantHelpers.GetClassificationSystems().ForEach(x => { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ClassificationController>(c => c.Index(x.ClassificationSystemID)), currentFirmaSession, ClassificationSystemModelExtensions.GetClassificationSystemNamePluralized(x), "Group1")); }); if (MultiTenantHelpers.TrackAccomplishments()) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <PerformanceMeasureController>(c => c.Manage()), currentFirmaSession, MultiTenantHelpers.GetPerformanceMeasureNamePluralized(), "Group1")); } MultiTenantHelpers.AddTechnicalAssistanceParametersMenuItem(manageMenu, currentFirmaSession, "Group1"); MultiTenantHelpers.AddEvaluationsMenuItem(manageMenu, currentFirmaSession, "Group1"); // Group 2 - System Config stuff manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectController>(c => c.FeaturedList()), currentFirmaSession, $"Featured {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()}", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.ManageHomePageImages()), currentFirmaSession, "Homepage Images", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <CustomPageController>(c => c.Index()), currentFirmaSession, "Custom Pages", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <FieldDefinitionController>(c => c.Index()), currentFirmaSession, "Labels & Definitions", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <DocumentLibraryController>(c => c.Index()), currentFirmaSession, "Document Libraries", "Group2")); // Group 3 manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectFactSheetController>(c => c.Manage()), currentFirmaSession, $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Fact Sheets", "Group3")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TagController>(c => c.Index()), currentFirmaSession, $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Tags", "Group3")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectUpdateController>(c => c.Manage()), currentFirmaSession, $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Updates", "Group3")); // Group 4 manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <UserController>(c => c.Index()), currentFirmaSession, "Users", "Group4")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ExcelUploadController>(c => c.ManageExcelUploadsAndEtl()), currentFirmaSession, $"Upload Excel Files / ETL", "Group4")); // todo: action item index here manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ActionItemController>(c => c.Index()), currentFirmaSession, $"{FieldDefinitionEnum.ActionItem.ToType().GetFieldDefinitionLabelPluralized()}", "Group4")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <AdminController>(c => c.AdminDetail()), currentFirmaSession, $"Admin", "Group4")); // Group 4 - Other // Group 5 - Project Firma Configuration stuff if (HttpRequestStorage.Tenant == ProjectFirmaModels.Models.Tenant.SitkaTechnologyGroup) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.DemoScript()), currentFirmaSession, "Demo Script", "Group6")); // TODO: poor man's hack until we do tenant specific menu and features } return(manageMenu); }
private static LtInfoMenuItem BuildManageMenu(Person currentPerson) { var manageMenu = new LtInfoMenuItem("Manage"); // Group 1 - Project Classifications Stuff (taxonomies, classification systems, PMs) if (MultiTenantHelpers.IsTaxonomyLevelTrunk()) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TaxonomyTrunkController>(c => c.Manage()), currentPerson, Models.FieldDefinition.TaxonomyTrunk.GetFieldDefinitionLabelPluralized(), "Group1")); } if (!MultiTenantHelpers.IsTaxonomyLevelLeaf()) { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TaxonomyBranchController>(c => c.Manage()), currentPerson, Models.FieldDefinition.TaxonomyBranch.GetFieldDefinitionLabelPluralized(), "Group1")); } manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectTypeController>(c => c.Manage()), currentPerson, Models.FieldDefinition.ProjectType.GetFieldDefinitionLabelPluralized(), "Group1")); MultiTenantHelpers.GetClassificationSystems().ForEach(x => { manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ClassificationController>(c => c.Index(x.ClassificationSystemID)), currentPerson, x.ClassificationSystemNamePluralized, "Group1")); }); // Group 2 - System Config stuff manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <UserController>(c => c.Index()), currentPerson, "Users and Contacts", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectController>(c => c.FeaturedList()), currentPerson, $"Featured {Models.FieldDefinition.Project.GetFieldDefinitionLabelPluralized()}", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <TagController>(c => c.Index()), currentPerson, $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Tags", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectUpdateController>(c => c.Manage()), currentPerson, $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Updates", "Group2")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.ManageHomePageImages()), currentPerson, "Homepage Configuration", "Group2")); // Group 3 - Content Editing stuff manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <FirmaPageController>(c => c.Index()), currentPerson, "Custom Page Content", "Group3")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <FieldDefinitionController>(c => c.Index()), currentPerson, "Custom Labels & Definitions", "Group3")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <CustomPageController>(c => c.Index()), currentPerson, "Custom Pages", "Group3")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ProjectCustomAttributeTypeController>(c => c.Manage()), currentPerson, "Custom Attributes", "Group3")); // Group 4 - Other manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.InternalSetupNotes()), currentPerson, "Internal Setup Notes", "Group4")); manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.StyleGuide()), currentPerson, "Style Guide", "Group4")); // Group 5 - Organizations manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <OrganizationAndRelationshipTypeController>(c => c.Index()), currentPerson, Models.FieldDefinition.OrganizationType.GetFieldDefinitionLabelPluralized(), "Group5")); // Group 6 - Jobs manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <JobController>(c => c.JobIndex()), currentPerson, Models.FieldDefinition.Job.GetFieldDefinitionLabelPluralized(), "Group6")); // Group 7 - JSON APIs manageMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <JsonApiManagementController>(c => c.JsonApiLandingPage()), currentPerson, "JSON APIs", "Group7")); // Group 8 - Hangfire menu if (currentPerson.IsAdministrator()) { LtInfoMenuItem hangfireMenuItem = new LtInfoMenuItem("/hangfire", "Hangfire", true, false, "Group8"); manageMenu.AddMenuItem(hangfireMenuItem); } return(manageMenu); }
public EditClassificationSystemsViewModel(ProjectFirmaModels.Models.Tenant tenant) { TenantID = tenant.TenantID; ClassificationSystemSimples = MultiTenantHelpers.GetClassificationSystems().Select(x => new ClassificationSystemSimple(x)).ToList(); if (ClassificationSystemSimples.Count < 2) { ClassificationSystemSimples.Add(new ClassificationSystemSimple(tenant.TenantID)); } }
public ActionResult EditClassificationSystems(EditClassificationSystemsViewModel viewModel) { if (!ModelState.IsValid) { return(ViewEditClassificationSystems(viewModel)); } var currentClassificationSystems = MultiTenantHelpers.GetClassificationSystems(); var allClassificationSystems = HttpRequestStorage.DatabaseEntities.AllClassificationSystems.Local; viewModel.UpdateModel(CurrentFirmaSession, currentClassificationSystems, allClassificationSystems); MultiTenantHelpers.ClearTenantAttributeCacheForAllTenants(); return(new ModalDialogFormJsonResult(new SitkaRoute <TenantController>(c => c.Detail()).BuildUrlFromExpression())); }
private static Dictionary <ProjectLocationFilterTypeSimple, IEnumerable <SelectListItem> > CreateProjectLocationFilterTypesAndValuesDictionary(bool showProposals) { var projectLocationFilterTypesAndValues = new Dictionary <ProjectLocationFilterTypeSimple, IEnumerable <SelectListItem> >(); if (MultiTenantHelpers.IsTaxonomyLevelTrunk()) { var taxonomyTrunksAsSelectListItems = HttpRequestStorage.DatabaseEntities.TaxonomyTrunks.AsEnumerable().ToSelectList( x => x.TaxonomyTrunkID.ToString(CultureInfo.InvariantCulture), x => x.DisplayName); var taxonomyTrunkFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.TaxonomyTrunk); projectLocationFilterTypesAndValues.Add(taxonomyTrunkFilterSimple, taxonomyTrunksAsSelectListItems); } if (!MultiTenantHelpers.IsTaxonomyLevelLeaf()) { var taxonomyBranchesAsSelectListItems = HttpRequestStorage.DatabaseEntities.TaxonomyBranches.AsEnumerable().ToSelectList( x => x.TaxonomyBranchID.ToString(CultureInfo.InvariantCulture), x => x.DisplayName); var taxonomyBranchFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.TaxonomyBranch); projectLocationFilterTypesAndValues.Add(taxonomyBranchFilterSimple, taxonomyBranchesAsSelectListItems); } var projectTypesAsSelectListItems = HttpRequestStorage.DatabaseEntities.ProjectTypes.AsEnumerable().ToSelectList( x => x.ProjectTypeID.ToString(CultureInfo.InvariantCulture), x => x.DisplayName); var projectTypeFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.ProjectType); projectLocationFilterTypesAndValues.Add(projectTypeFilterSimple, projectTypesAsSelectListItems); var classificationsAsSelectList = MultiTenantHelpers.GetClassificationSystems().SelectMany(x => x.Classifications).ToSelectList(x => x.ClassificationID.ToString(CultureInfo.InvariantCulture), x => MultiTenantHelpers.GetClassificationSystems().Count > 1 ? $"{x.ClassificationSystem.ClassificationSystemName} - {x.DisplayName}" : x.DisplayName); var classificationFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.Classification, string.Join(" & ", MultiTenantHelpers.GetClassificationSystems().Select(x => x.ClassificationSystemName).ToList())); projectLocationFilterTypesAndValues.Add(classificationFilterSimple, classificationsAsSelectList); var projectStagesAsSelectListItems = ProjectMapCustomization.GetProjectStagesForMap(showProposals).ToSelectList(x => x.ProjectStageID.ToString(CultureInfo.InvariantCulture), x => x.ProjectStageDisplayName); var projectStageFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.ProjectStage); projectLocationFilterTypesAndValues.Add(projectStageFilterSimple, projectStagesAsSelectListItems); var programsAsSelectListItems = HttpRequestStorage.DatabaseEntities.Programs.AsEnumerable().ToSelectList(x => x.ProgramID.ToString(CultureInfo.InvariantCulture), y => y.DisplayName); var programFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.Program); projectLocationFilterTypesAndValues.Add(programFilterSimple, programsAsSelectListItems); var leadImplementorsAsSelectListItems = HttpRequestStorage.DatabaseEntities.Organizations.Where(o => o.ProjectOrganizations.Any(po => po.RelationshipTypeID == RelationshipType.LeadImplementerID)).AsEnumerable().ToSelectList(x => x.OrganizationID.ToString(CultureInfo.InvariantCulture), y => y.DisplayName); var leadImplementerFilterSimple = new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.LeadImplementer); projectLocationFilterTypesAndValues.Add(leadImplementerFilterSimple, leadImplementorsAsSelectListItems); return(projectLocationFilterTypesAndValues); }
public ProjectExcelSpec(FirmaSession currentFirmaSession, IEnumerable <GeospatialAreaType> geospatialAreaTypes, List <ProjectFirmaModels.Models.ProjectCustomAttributeType> projectCustomAttributeTypes) { AddColumn($"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} ID", x => x.ProjectID); AddColumn(FieldDefinitionEnum.ProjectName.ToType().GetFieldDefinitionLabel(), x => x.ProjectName); AddColumn(FieldDefinitionEnum.ProjectPrimaryContact.ToType().GetFieldDefinitionLabel(), x => x.GetPrimaryContact()?.GetFullNameLastFirst()); AddColumn(FieldDefinitionEnum.ProjectPrimaryContactEmail.ToType().GetFieldDefinitionLabel(), x => x.GetPrimaryContact()?.Email); AddColumn($"Non-Lead Implementing {FieldDefinitionEnum.Organization.ToType().GetFieldDefinitionLabelPluralized()}", x => string.Join(",", x.GetAssociatedOrganizations().Select(pio => pio.GetDisplayName()))); AddColumn(FieldDefinitionEnum.ProjectStage.ToType().GetFieldDefinitionLabel(), x => x.ProjectStage.ProjectStageDisplayName); MultiTenantHelpers.GetClassificationSystems().ForEach(y => { AddColumn(ClassificationSystemModelExtensions.GetClassificationSystemNamePluralized(y), x => string.Join(",", x.ProjectClassifications.Where(z => z.Classification.ClassificationSystem == y).Select(tc => tc.Classification.GetDisplayName()))); }); foreach (var projectCustomAttributeType in projectCustomAttributeTypes) { AddColumn($"{projectCustomAttributeType.ProjectCustomAttributeTypeName}", a => a.GetProjectCustomAttributesValue(projectCustomAttributeType)); } foreach (var geospatialAreaType in geospatialAreaTypes) { AddColumn($"{geospatialAreaType.GeospatialAreaTypeNamePluralized}", x => string.Join(", ", x.ProjectGeospatialAreas.Where(y => y.GeospatialArea.GeospatialAreaType == geospatialAreaType).Select(y => y.GeospatialArea.GeospatialAreaShortName).ToList())); } AddColumn(FieldDefinitionEnum.ImplementationStartYear.ToType().GetFieldDefinitionLabel(), x => x.ImplementationStartYear); AddColumn(FieldDefinitionEnum.CompletionYear.ToType().GetFieldDefinitionLabel(), x => x.CompletionYear); AddColumn($"Primary {FieldDefinitionEnum.TaxonomyLeaf.ToType().GetFieldDefinitionLabel()}", x => x.TaxonomyLeaf.GetDisplayName()); var enableSecondaryProjectTaxonomyLeaf = MultiTenantHelpers.GetTenantAttributeFromCache().EnableSecondaryProjectTaxonomyLeaf; if (enableSecondaryProjectTaxonomyLeaf) { AddColumn(FieldDefinitionEnum.SecondaryProjectTaxonomyLeaf.ToType().GetFieldDefinitionLabelPluralized(), x => string.Join(", ", x.SecondaryProjectTaxonomyLeafs.Select(y => y.TaxonomyLeaf.GetDisplayName()))); } AddColumn(FieldDefinitionEnum.ProjectDescription.ToType().GetFieldDefinitionLabel(), x => x.ProjectDescription); AddColumn(FieldDefinitionEnum.FundingType.ToType().GetFieldDefinitionLabel(), x => x.FundingType?.FundingTypeName); AddColumn(FieldDefinitionEnum.EstimatedTotalCost.ToType().GetFieldDefinitionLabel(), x => x.GetEstimatedTotalRegardlessOfFundingType()); AddColumn(FieldDefinitionEnum.SecuredFunding.ToType().GetFieldDefinitionLabel(), x => x.GetSecuredFunding()); AddColumn(FieldDefinitionEnum.TargetedFunding.ToType().GetFieldDefinitionLabel(), x => x.GetTargetedFunding()); AddColumn(FieldDefinitionEnum.NoFundingSourceIdentified.ToType().GetFieldDefinitionLabel(), x => x.GetNoFundingSourceIdentifiedAmount()); AddColumn("State", a => a.GetProjectLocationStateProvince()); AddColumn($"{FieldDefinitionEnum.ProjectLocation.ToType().GetFieldDefinitionLabel()} Notes", a => a.ProjectLocationNotes); AddColumn("Latitude", x => x.GetProjectLocationPoint(false)?.YCoordinate); AddColumn("Longitude", x => x.GetProjectLocationPoint(false)?.XCoordinate); }
public ProjectExcelSpec() { AddColumn(Models.FieldDefinition.ProjectName.GetFieldDefinitionLabel(), x => x.ProjectName); AddColumn($"Non-Lead Implementing {Models.FieldDefinition.Organization.GetFieldDefinitionLabelPluralized()}", x => string.Join(",", x.GetAssociatedOrganizations().Select(pio => pio.Organization.DisplayName))); AddColumn(Models.FieldDefinition.ProjectStage.GetFieldDefinitionLabel(), x => x.ProjectStage.ProjectStageDisplayName); MultiTenantHelpers.GetClassificationSystems().ForEach(y => { AddColumn(y.ClassificationSystemNamePluralized, x => string.Join(",", x.ProjectClassifications.Where(z => z.Classification.ClassificationSystem == y).Select(tc => tc.Classification.DisplayName))); }); AddColumn(Models.FieldDefinition.PriorityLandscape.GetFieldDefinitionLabelPluralized(), x => string.Join(",", x.GetProjectPriorityLandscapes().Select(y => y.PriorityLandscapeName))); AddColumn("Regions", x => string.Join(",", x.GetProjectRegions().Select(y => y.DNRUplandRegionName))); AddColumn(Models.FieldDefinition.StartApprovalDate.GetFieldDefinitionLabel(), x => x.GetImplementationStartYear()); AddColumn(Models.FieldDefinition.CompletionDate.GetFieldDefinitionLabel(), x => x.GetCompletionYear()); AddColumn(Models.FieldDefinition.ProjectDescription.GetFieldDefinitionLabel(), x => x.ProjectDescription); AddColumn(Models.FieldDefinition.EstimatedTotalCost.GetFieldDefinitionLabel(), x => x.EstimatedTotalCost); AddColumn(Models.FieldDefinition.ProjectGrantAllocationRequestTotalAmount.GetFieldDefinitionLabel(), x => x.GetTotalFunding()); AddColumn("State", a => a.ProjectLocationStateProvince); AddColumn($"{Models.FieldDefinition.ProjectLocation.GetFieldDefinitionLabel()} Notes", a => a.ProjectLocationNotes); }
private static Dictionary <ProjectLocationFilterTypeSimple, IEnumerable <SelectListItem> > CreateProjectLocationFilterTypesAndValuesDictionary(bool showProposals) { var projectLocationFilterTypesAndValues = new Dictionary <ProjectLocationFilterTypeSimple, IEnumerable <SelectListItem> >(); if (MultiTenantHelpers.IsTaxonomyLevelTrunk()) { var taxonomyTrunksAsSelectListItems = HttpRequestStorage.DatabaseEntities.TaxonomyTrunks.OrderBy(x => x.TaxonomyTrunkSortOrder).ThenBy(x => x.TaxonomyTrunkName).ToSelectList( x => x.TaxonomyTrunkID.ToString(CultureInfo.InvariantCulture), x => x.GetDisplayName()); projectLocationFilterTypesAndValues.Add(new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.TaxonomyTrunk), taxonomyTrunksAsSelectListItems); } if (!MultiTenantHelpers.IsTaxonomyLevelLeaf()) { var taxonomyBranchesAsSelectListItems = HttpRequestStorage.DatabaseEntities.TaxonomyBranches.OrderBy(x => x.TaxonomyTrunk.TaxonomyTrunkSortOrder).ThenBy(x => x.TaxonomyBranchSortOrder).ThenBy(x => x.TaxonomyBranchName).ToSelectList( x => x.TaxonomyBranchID.ToString(CultureInfo.InvariantCulture), x => x.GetDisplayName()); projectLocationFilterTypesAndValues.Add(new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.TaxonomyBranch), taxonomyBranchesAsSelectListItems); } var taxonomyLeafsAsSelectListItems = HttpRequestStorage.DatabaseEntities.TaxonomyLeafs.OrderBy(x => x.TaxonomyBranch.TaxonomyTrunk.TaxonomyTrunkSortOrder).ThenBy(x => x.TaxonomyBranch.TaxonomyBranchSortOrder).ThenBy(x => x.TaxonomyLeafSortOrder).ThenBy(x => x.TaxonomyLeafName).ToSelectList( x => x.TaxonomyLeafID.ToString(CultureInfo.InvariantCulture), x => x.GetDisplayName()); projectLocationFilterTypesAndValues.Add(new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.TaxonomyLeaf), taxonomyLeafsAsSelectListItems); var classificationsAsSelectList = MultiTenantHelpers.GetClassificationSystems().SelectMany(x => x.Classifications).ToSelectList(x => x.ClassificationID.ToString(CultureInfo.InvariantCulture), x => MultiTenantHelpers.GetClassificationSystems().Count > 1 ? $"{x.ClassificationSystem.ClassificationSystemName} - {x.GetDisplayName()}" : x.GetDisplayName()); projectLocationFilterTypesAndValues.Add(new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.Classification, string.Join(" & ", MultiTenantHelpers.GetClassificationSystems().Select(x => x.ClassificationSystemName).ToList())), classificationsAsSelectList); var projectStagesAsSelectListItems = ProjectMapCustomization.GetProjectStagesForMap(showProposals).ToSelectList(x => x.ProjectStageID.ToString(CultureInfo.InvariantCulture), x => x.ProjectStageDisplayName); projectLocationFilterTypesAndValues.Add(new ProjectLocationFilterTypeSimple(ProjectLocationFilterType.ProjectStage), projectStagesAsSelectListItems); return(projectLocationFilterTypesAndValues); }
public static List <int> GetDefaultFilterValuesForFilterType(ProjectLocationFilterTypeEnum projectLocationFilterType, bool currentPersonCanViewProposals) { switch (projectLocationFilterType) { case ProjectLocationFilterTypeEnum.TaxonomyTrunk: return(HttpRequestStorage.DatabaseEntities.TaxonomyTrunks.Select(x => x.TaxonomyTrunkID).ToList()); case ProjectLocationFilterTypeEnum.TaxonomyBranch: return(HttpRequestStorage.DatabaseEntities.TaxonomyBranches.Select(x => x.TaxonomyBranchID).ToList()); case ProjectLocationFilterTypeEnum.TaxonomyLeaf: return(HttpRequestStorage.DatabaseEntities.TaxonomyLeafs.Select(x => x.TaxonomyLeafID).ToList()); case ProjectLocationFilterTypeEnum.Classification: return(MultiTenantHelpers.GetClassificationSystems().SelectMany(x => x.Classifications) .Select(x => x.ClassificationID).ToList()); default: // project stage return(ProjectMapCustomization.GetDefaultLocationFilterValues(currentPersonCanViewProposals)); } }