public JsonNetJObjectResult OrganizationDashboardSummary(int organizationID) { List <Project> projects; Organization organization = null; if (ModelObjectHelpers.IsRealPrimaryKeyValue(organizationID) && MultiTenantHelpers.DisplayAccomplishmentDashboard()) { organization = HttpRequestStorage.DatabaseEntities.Organizations.GetOrganization(organizationID); projects = organization.GetAllActiveProjectsWhereOrganizationReportsInAccomplishmentsDashboard(CurrentFirmaSession); } else { projects = HttpRequestStorage.DatabaseEntities.Projects.ToList() .GetActiveProjectsAndProposals(MultiTenantHelpers.ShowProposalsToThePublic(), CurrentFirmaSession).ToList(); } var projectCount = projects.Count; var partnerCount = GetPartnerOrganizations(organizationID).Count; var totalInvestment = MultiTenantHelpers.GetAccomplishmentsDashboardFundingDisplayType() .GetInvestmentAmount(organization, projects.SelectMany(x => x.ProjectFundingSourceExpenditures)); return(new JsonNetJObjectResult(new { ProjectCount = projectCount, PartnerCount = partnerCount, TotalInvestment = totalInvestment.ToGroupedNumeric() })); }
public static List <Project> GetAllActiveProjectsWhereOrganizationReportsInAccomplishmentsDashboard(this Organization organization) { Check.Assert(MultiTenantHelpers.DisplayAccomplishmentDashboard()); return(organization.GetAllAssociatedProjects() .GetActiveProjectsAndProposals(MultiTenantHelpers.ShowProposalsToThePublic()) .Where(x => x.GetOrganizationsToReportInAccomplishments().Any(y => y == organization)) .ToList()); }
private static LtInfoMenuItem BuildResultsMenu(FirmaSession firmaSession) { var resultsMenu = new LtInfoMenuItem(FirmaMenuItem.Results.GetFirmaMenuItemDisplayName()); if (MultiTenantHelpers.DisplayAccomplishmentDashboard()) { resultsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <ResultsController>(c => c.AccomplishmentsDashboard()), firmaSession, "Accomplishments Dashboard")); } MultiTenantHelpers.AddTechnicalAssistanceReportMenuItem(resultsMenu, firmaSession); MultiTenantHelpers.AddFundingStatusMenuItem(resultsMenu, firmaSession); //resultsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute<ResultsController>(c => c.ProjectMap()), currentPerson, $"{Models.FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Map")); //resultsMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute<SnapshotController>(c => c.Index()), currentPerson, "System Snapshot", "Group2")); AddCustomPagesToMenu(firmaSession, FirmaMenuItem.Results, resultsMenu, "Group2"); return(resultsMenu); }
private void MakeFirmaMenu(FirmaSession currentFirmaSession) { TopLevelLtInfoMenuItems = new List <LtInfoMenuItem> { BuildAboutMenu(currentFirmaSession), BuildProjectsMenu(currentFirmaSession), // WARNING: This has been deleted multiple times. We are manually re-adding it. If a conflict occurs here, lets talk - SMG & SLG BuildAgreementsMenu(currentFirmaSession), //BuildObligationsMenu(currentFirmaSession), BuildProgramInfoMenu(currentFirmaSession) }; if (MultiTenantHelpers.DisplayAccomplishmentDashboard() || MultiTenantHelpers.UsesCustomResultsPages(currentFirmaSession)) { TopLevelLtInfoMenuItems.Add(BuildResultsMenu(currentFirmaSession)); } if (MultiTenantHelpers.DisplayReportsLink()) { TopLevelLtInfoMenuItems.Add(BuildReportsMenu(currentFirmaSession)); } TopLevelLtInfoMenuItems.Add(BuildManageMenu(currentFirmaSession)); TopLevelLtInfoMenuItems.Add(BuildConfigureMenu(currentFirmaSession)); TopLevelLtInfoMenuItems.ForEach(x => x.ExtraTopLevelMenuCssClasses = new List <string> { "navigation-root-item" }); TopLevelLtInfoMenuItems.SelectMany(x => x.ChildMenus).ToList().ForEach(x => x.ExtraTopLevelMenuCssClasses = new List <string> { "navigation-dropdown-item" }); HelpMenu = new LtInfoMenuItem("Help"); HelpMenu.AddMenuItem(LtInfoMenuItem.MakeItem("Request Support", ModalDialogFormHelper.ModalDialogFormLink("Request Support", RequestSupportUrl, "Request Support", 800, "Submit Request", "Cancel", new List <string>(), null, null).ToString(), "ToolHelp")); HelpMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.Training()), currentFirmaSession, "Training", "ToolHelp")); HelpMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.InternalSetupNotes()), currentFirmaSession, "Internal Setup Notes", "ToolHelp")); HelpMenu.AddMenuItem(LtInfoMenuItem.MakeItem(new SitkaRoute <HomeController>(c => c.ReleaseNotes()), currentFirmaSession, "Release Notes", "ToolHelp")); AddCustomPagesToMenu(currentFirmaSession, FirmaMenuItem.Help, HelpMenu, "CustomHelp"); HelpMenu.AddMenuItem(LtInfoMenuItem.MakeItem("About ProjectFirma", @"<a href='http://www.sitkatech.com/products/ProjectFirma/projectfirma-faqs/' target='_blank'>About ProjectFirma <span class='glyphicon glyphicon-new-window'></span></a>", "ExternalHelp")); }
private static List <ProjectFundingSourceExpenditure> GetProjectExpendituresByOrganizationType(int organizationID, int beginYear, int endYear) { var projectFundingSourceExpenditures = HttpRequestStorage.DatabaseEntities.ProjectFundingSourceExpenditures.ToList().Where(x => x.CalendarYear >= beginYear && x.CalendarYear <= endYear).Where(x => !x.Project.IsPendingProject()).ToList(); if (ModelObjectHelpers.IsRealPrimaryKeyValue(organizationID) && MultiTenantHelpers.DisplayAccomplishmentDashboard()) { var accomplishmentsDashboardIncludeReportingOrganizationType = MultiTenantHelpers.GetAccomplishmentsDashboardFundingDisplayType(); switch (accomplishmentsDashboardIncludeReportingOrganizationType.ToEnum) { case AccomplishmentsDashboardFundingDisplayTypeEnum.AllFundingReceived: return(projectFundingSourceExpenditures.Where(x => x.Project.GetOrganizationsToReportInAccomplishments().Any(y => y.OrganizationID == organizationID) && x.FundingSource.OrganizationID != organizationID).OrderBy(x => x.Project.ProjectName).ToList()); case AccomplishmentsDashboardFundingDisplayTypeEnum.OnlyFundingProvided: return(projectFundingSourceExpenditures.Where(x => x.FundingSource.Organization.OrganizationID == organizationID).OrderBy(x => x.Project.ProjectName).ToList()); } } return(projectFundingSourceExpenditures.OrderBy(x => x.Project.ProjectName).ToList()); }
public PartialViewResult OrganizationAccomplishments(int organizationID, int taxonomyTierID) { List <Project> projects; if (ModelObjectHelpers.IsRealPrimaryKeyValue(organizationID) && MultiTenantHelpers.DisplayAccomplishmentDashboard()) { var organization = HttpRequestStorage.DatabaseEntities.Organizations.GetOrganization(organizationID); projects = organization.GetAllActiveProjectsAndProposals(CurrentFirmaSession); } else { projects = HttpRequestStorage.DatabaseEntities.Projects.ToList().GetActiveProjectsAndProposals(MultiTenantHelpers.ShowProposalsToThePublic(), CurrentFirmaSession).ToList(); } var associatePerformanceMeasureTaxonomyLevel = MultiTenantHelpers.GetAssociatePerformanceMeasureTaxonomyLevel(); TaxonomyTier taxonomyTier; if (associatePerformanceMeasureTaxonomyLevel == TaxonomyLevel.Trunk) { taxonomyTier = new TaxonomyTier(HttpRequestStorage.DatabaseEntities.TaxonomyTrunks.GetTaxonomyTrunk(taxonomyTierID)); } else if (associatePerformanceMeasureTaxonomyLevel == TaxonomyLevel.Branch) { taxonomyTier = new TaxonomyTier(HttpRequestStorage.DatabaseEntities.TaxonomyBranches.GetTaxonomyBranch(taxonomyTierID)); } else { taxonomyTier = new TaxonomyTier(HttpRequestStorage.DatabaseEntities.TaxonomyLeafs.GetTaxonomyLeaf(taxonomyTierID)); } var projectIDs = projects.Select(x => x.ProjectID).Distinct().ToList(); var primaryPerformanceMeasuresForTaxonomyTier = taxonomyTier.TaxonomyTierPerformanceMeasures.Select(x => x.Key).ToList(); var performanceMeasures = primaryPerformanceMeasuresForTaxonomyTier.SelectMany(x => x.PerformanceMeasureActuals.Where(y => projectIDs.Contains(y.ProjectID))).Select(x => x.PerformanceMeasure).Distinct(new HavePrimaryKeyComparer <PerformanceMeasure>()).OrderBy(x => x.PerformanceMeasureDisplayName).ToList(); var performanceMeasureChartViewDatas = performanceMeasures.Select(x => new PerformanceMeasureChartViewData(x, CurrentFirmaSession, false, projects)).ToList(); var viewData = new OrganizationAccomplishmentsViewData(performanceMeasureChartViewDatas, taxonomyTier, associatePerformanceMeasureTaxonomyLevel); return(RazorPartialView <OrganizationAccomplishments, OrganizationAccomplishmentsViewData>(viewData)); }
private List <IGrouping <Organization, ProjectOrganizationRelationship> > GetPartnerOrganizations(int organizationID) { List <IGrouping <Organization, ProjectOrganizationRelationship> > partnerOrganizations; var includeReportingOrganizationType = MultiTenantHelpers.GetAccomplishmentsDashboardIncludeReportingOrganizationType(); if (ModelObjectHelpers.IsRealPrimaryKeyValue(organizationID) && MultiTenantHelpers.DisplayAccomplishmentDashboard()) { var organization = HttpRequestStorage.DatabaseEntities.Organizations.GetOrganization(organizationID); partnerOrganizations = organization .GetAllActiveProjectsWhereOrganizationReportsInAccomplishmentsDashboard(CurrentFirmaSession) .SelectMany(x => x.GetAssociatedOrganizationRelationships().Where(y => y.Organization.OrganizationID != organizationID && y.Organization.OrganizationType.IsFundingType && //filter by only orgs that can be funders to remove state senate and assembly districts y.Organization.IsActive)) .GroupBy(x => x.Organization, new HavePrimaryKeyComparer <Organization>()) .ToList(); } else { var activeProjectsAndProposals = HttpRequestStorage.DatabaseEntities.Projects.ToList() .GetActiveProjectsAndProposals(MultiTenantHelpers.ShowProposalsToThePublic(), CurrentFirmaSession); var projectOrganizationRelationshipsForActiveProjects = activeProjectsAndProposals .SelectMany(x => x.GetAssociatedOrganizationRelationships().Where(y => y.Organization.OrganizationType.IsFundingType && //filter by only orgs that can be funders to remove state senate and assembly districts y.Organization.IsActive)).ToList(); var projectOrganizationRelationshipsToReport = projectOrganizationRelationshipsForActiveProjects .Where(x => includeReportingOrganizationType || !x.Organization.CanBeReportedInAccomplishmentsDashboard()).ToList(); partnerOrganizations = projectOrganizationRelationshipsToReport .GroupBy(x => x.Organization, new HavePrimaryKeyComparer <Organization>()) .ToList(); } return(partnerOrganizations); }