public Feature MakePointFeatureWithRelevantProperties(DbGeometry projectLocationPoint , bool addProjectProperties , bool useDetailedCustomPopup , string organizationFieldDefinitionLabelSingle , string organizationFieldDefinitionLabelPluralized , Dictionary <int, List <ProjectGrantAllocationExpenditure> > projectGrantAllocationExpenditureDict) { var feature = DbGeometryToGeoJsonHelper.FromDbGeometry(projectLocationPoint); feature.Properties.Add("TaxonomyTrunkID", ProjectType.TaxonomyBranch.TaxonomyTrunkID.ToString(CultureInfo.InvariantCulture)); feature.Properties.Add("ProjectStageID", ProjectStageID.ToString(CultureInfo.InvariantCulture)); if (ProjectStage != null) { feature.Properties.Add("ProjectStageColor", ProjectStage.ProjectStageColor); } feature.Properties.Add("Info", DisplayName); if (addProjectProperties) { feature.Properties.Add("ProjectID", ProjectID.ToString(CultureInfo.InvariantCulture)); feature.Properties.Add("TaxonomyBranchID", ProjectType.TaxonomyBranchID.ToString(CultureInfo.InvariantCulture)); feature.Properties.Add("ProjectTypeID", ProjectTypeID.ToString(CultureInfo.InvariantCulture)); feature.Properties.Add("ClassificationID", string.Join(",", ProjectClassifications.Select(x => x.ClassificationID))); var associatedOrganizations = this.GetAssociatedOrganizations(organizationFieldDefinitionLabelSingle, organizationFieldDefinitionLabelPluralized, projectGrantAllocationExpenditureDict); foreach (var relationshipTypeGroup in associatedOrganizations.GroupBy(x => x.RelationshipType.RelationshipTypeName)) { feature.Properties.Add($"{relationshipTypeGroup.First().RelationshipType.RelationshipTypeName}ID", relationshipTypeGroup.Select(z => z.Organization.OrganizationID).ToList()); } if (useDetailedCustomPopup) { feature.Properties.Add("PopupUrl", this.GetProjectMapPopupUrl()); } else { feature.Properties.Add("PopupUrl", this.GetProjectSimpleMapPopupUrl()); } feature.Properties.Add("ProgramID", string.Join(",", ProjectPrograms.Select(x => x.ProgramID))); feature.Properties.Add("LeadImplementerID", this.ProjectOrganizations.SingleOrDefault(x => x.RelationshipTypeID == RelationshipType.LeadImplementerID)?.OrganizationID.ToString(CultureInfo.InvariantCulture) ?? (-1).ToString(CultureInfo.InvariantCulture)); } return(feature); }
public List <Project> GetAssociatedProjects(Person currentPerson) { return(ProjectClassifications.Select(ptc => ptc.Project).ToList().GetActiveProjectsAndProposalsVisibleToUser(currentPerson).ToList()); }