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() })); }
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()); }