public ProjectMapCustomization(ProjectLocationFilterType projectLocationFilterType, List <int> projectLocationFilterValues, ProjectColorByType projectColorByType) { ProjectLocationFilterType = projectLocationFilterType; ProjectColorByType = projectColorByType; FilterPropertyName = projectLocationFilterType != null ? projectLocationFilterType.ProjectLocationFilterTypeNameWithIdentifier : String.Empty; FilterPropertyValues = projectLocationFilterValues; ColorByPropertyName = projectColorByType != null ? projectColorByType.ProjectColorByTypeNameWithIdentifier : String.Empty; }
public ProjectLocationFilterTypeSimple(ProjectLocationFilterType projectLocationFilterType, string displayName) { DisplayName = displayName; ProjectLocationFilterTypeName = projectLocationFilterType.ProjectLocationFilterTypeName; ProjectLocationFilterTypeNameWithIdentifier = projectLocationFilterType.ProjectLocationFilterTypeNameWithIdentifier; DisplayGroup = projectLocationFilterType.DisplayGroup; SortOrder = projectLocationFilterType.SortOrder; }
public ProjectLocationFilterTypeSimple(ProjectLocationFilterType projectLocationFilterType, int sortOrder) { DisplayName = projectLocationFilterType.GetDisplayName(); ProjectLocationFilterTypeName = projectLocationFilterType.ProjectLocationFilterTypeName; ProjectLocationFilterTypeNameWithIdentifier = projectLocationFilterType.ProjectLocationFilterTypeNameWithIdentifier; DisplayGroup = projectLocationFilterType.DisplayGroup; SortOrder = sortOrder; }
public static string BuildCustomizedUrl(ProjectLocationFilterType filterType, string filterValues, ProjectColorByType colorBy) { return($"{BuildCustomizedUrl(filterType, filterValues)}&{ColorByQueryStringParameter}={colorBy.ProjectColorByTypeName}"); }
public static string BuildCustomizedUrl(ProjectLocationFilterType filterType, string filterValues) { return($"{SitkaRoute<ResultsController>.BuildUrlFromExpression(p => p.ProjectMap())}?{FilterByQueryStringParameter}={filterType.ProjectLocationFilterTypeName}&{FilterValuesQueryStringParameter}={filterValues}"); }
public ProjectMapCustomization(ProjectLocationFilterType projectLocationFilterType, List <int> projectLocationFilterValues) : this(projectLocationFilterType, projectLocationFilterValues, DefaultColorByType) { }
public ViewResult ProjectMap() { List <int> filterValues; ProjectLocationFilterType projectLocationFilterType; ProjectColorByType colorByValue; var currentPersonCanViewProposals = CurrentFirmaSession.CanViewProposals(); if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.FilterByQueryStringParameter])) { projectLocationFilterType = ProjectLocationFilterType.ToType(Request .QueryString[ProjectMapCustomization.FilterByQueryStringParameter] .ParseAsEnum <ProjectLocationFilterTypeEnum>()); } else { projectLocationFilterType = ProjectMapCustomization.DefaultLocationFilterType; } if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.FilterValuesQueryStringParameter])) { var filterValuesAsString = Request.QueryString[ProjectMapCustomization.FilterValuesQueryStringParameter] .Split(','); filterValues = filterValuesAsString.Select(Int32.Parse).ToList(); } else { filterValues = GetDefaultFilterValuesForFilterType(projectLocationFilterType.ToEnum, currentPersonCanViewProposals); } if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.ColorByQueryStringParameter])) { colorByValue = ProjectColorByType.ToType(Request .QueryString[ProjectMapCustomization.ColorByQueryStringParameter] .ParseAsEnum <ProjectColorByTypeEnum>()); } else { colorByValue = ProjectMapCustomization.DefaultColorByType; } var firmaPage = FirmaPageTypeEnum.ProjectMap.GetFirmaPage(); var projectsToShow = ProjectMapCustomization.ProjectsForMap(currentPersonCanViewProposals, CurrentFirmaSession); var initialCustomization = new ProjectMapCustomization(projectLocationFilterType, filterValues, colorByValue); var projectLocationsLayerGeoJson = new LayerGeoJson($"{FieldDefinitionEnum.ProjectLocation.ToType().GetFieldDefinitionLabel()}", projectsToShow.MappedPointsToGeoJsonFeatureCollection(false, true, true), "red", 1, LayerInitialVisibility.LayerInitialVisibilityEnum.Show); var projectLocationsMapInitJson = new ProjectLocationsMapInitJson(projectLocationsLayerGeoJson, initialCustomization, "ProjectLocationsMap", true); // Add Organization Type boundaries according to configuration projectLocationsMapInitJson.Layers.AddRange(HttpRequestStorage.DatabaseEntities.Organizations.GetConfiguredBoundaryLayersGeoJson()); var projectLocationsMapViewData = new ProjectLocationsMapViewData(projectLocationsMapInitJson.MapDivID, null, MultiTenantHelpers.GetTopLevelTaxonomyTiers(), currentPersonCanViewProposals, true); var projectLocationFilterTypesAndValues = CreateProjectLocationFilterTypesAndValuesDictionary(currentPersonCanViewProposals); var projectLocationsUrl = SitkaRoute <ResultsController> .BuildAbsoluteUrlHttpsFromExpression(x => x.ProjectMap()); var filteredProjectsWithLocationAreasUrl = SitkaRoute <ResultsController> .BuildUrlFromExpression(x => x.FilteredProjectsWithLocationAreas(null)); var projectColorByTypes = new List <ProjectColorByType> { ProjectColorByType.ProjectStage }; if (MultiTenantHelpers.IsTaxonomyLevelTrunk()) { projectColorByTypes.Add(ProjectColorByType.TaxonomyTrunk); } else if (MultiTenantHelpers.IsTaxonomyLevelBranch()) { projectColorByTypes.Add(ProjectColorByType.TaxonomyBranch); } var viewData = new ProjectMapViewData(CurrentFirmaSession, firmaPage, projectLocationsMapInitJson, projectLocationsMapViewData, projectLocationFilterTypesAndValues, projectLocationsUrl, filteredProjectsWithLocationAreasUrl, projectColorByTypes, ProjectColorByType.ProjectStage.GetDisplayNameFieldDefinition()); return(RazorView <ProjectMap, ProjectMapViewData>(viewData)); }
public ViewResult ProjectMap() { List <int> filterValues; ProjectLocationFilterType projectLocationFilterType; ProjectColorByType colorByValue; var currentPersonCanViewProposals = CurrentPerson.CanViewProposals; if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.FilterByQueryStringParameter])) { projectLocationFilterType = ProjectLocationFilterType.ToType(Request .QueryString[ProjectMapCustomization.FilterByQueryStringParameter] .ParseAsEnum <ProjectLocationFilterTypeEnum>()); } else { projectLocationFilterType = ProjectMapCustomization.DefaultLocationFilterType; } if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.FilterValuesQueryStringParameter])) { var filterValuesAsString = Request.QueryString[ProjectMapCustomization.FilterValuesQueryStringParameter] .Split(','); filterValues = filterValuesAsString.Select(Int32.Parse).ToList(); } else { filterValues = ProjectMapCustomization.GetDefaultLocationFilterValues(currentPersonCanViewProposals); } if (!String.IsNullOrEmpty(Request.QueryString[ProjectMapCustomization.ColorByQueryStringParameter])) { colorByValue = ProjectColorByType.ToType(Request .QueryString[ProjectMapCustomization.ColorByQueryStringParameter] .ParseAsEnum <ProjectColorByTypeEnum>()); } else { colorByValue = ProjectMapCustomization.DefaultColorByType; } var firmaPage = FirmaPage.GetFirmaPageByPageType(FirmaPageType.ProjectMap); var projectsToShow = ProjectMapCustomization.ProjectsForMap(CurrentPerson); var initialCustomization = new ProjectMapCustomization(projectLocationFilterType, filterValues, colorByValue); var projectLocationsLayerGeoJson = new LayerGeoJson($"{FieldDefinition.ProjectLocation.GetFieldDefinitionLabel()}", Project.MappedPointsToGeoJsonFeatureCollection(projectsToShow, true, true), "red", 1, LayerInitialVisibility.Show); var projectLocationsMapInitJson = new ProjectLocationsMapInitJson(projectLocationsLayerGeoJson, initialCustomization, "ProjectLocationsMap"); projectLocationsMapInitJson.Layers.AddRange(HttpRequestStorage.DatabaseEntities.Organizations.GetBoundaryLayerGeoJson()); var interactionEventLayer = HttpRequestStorage.DatabaseEntities.InteractionEvents.GetInteractionEventsLayerGeoJson(); projectLocationsMapInitJson.Layers.Add(interactionEventLayer); projectLocationsMapInitJson.Layers.Add(MapInitJson.GetWashingtonCountyLayer()); projectLocationsMapInitJson.Layers.Add(MapInitJson.GetWashingtonLegislativeDistrictLayer()); var projectLocationsMapViewData = new ProjectLocationsMapViewData(projectLocationsMapInitJson.MapDivID, colorByValue.DisplayName, MultiTenantHelpers.GetTopLevelTaxonomyTiers(), currentPersonCanViewProposals); var projectLocationFilterTypesAndValues = CreateProjectLocationFilterTypesAndValuesDictionary(currentPersonCanViewProposals); var projectLocationsUrl = SitkaRoute <ResultsController> .BuildAbsoluteUrlHttpsFromExpression(x => x.ProjectMap()); var filteredProjectsWithLocationAreasUrl = SitkaRoute <ResultsController> .BuildUrlFromExpression(x => x.FilteredProjectsWithLocationAreas(null)); var projectMapLocationJsons = new List <ProjectMapLocationJson>(); var filteredProjectList = projectsToShow.Where(x1 => x1.HasProjectLocationPoint).Where(x => x.ProjectStage.ShouldShowOnMap()).ToList(); projectMapLocationJsons = filteredProjectList.ToList().Select(p => new ProjectMapLocationJson(p)).ToList(); var viewData = new ProjectMapViewData(CurrentPerson, firmaPage, projectLocationsMapInitJson, projectLocationsMapViewData, projectLocationFilterTypesAndValues, projectLocationsUrl, filteredProjectsWithLocationAreasUrl, projectMapLocationJsons); return(RazorView <ProjectMap, ProjectMapViewData>(viewData)); }