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