public object GetNatureAreaInstitutionSummary([FromBody] AreaFilterRequest areaFilterRequest) { var geometry = ""; var epsgCode = 0; if (areaFilterRequest != null) { geometry = areaFilterRequest.Geometry; epsgCode = areaFilterRequest.EpsgCode == null ? default(int) : int.Parse(areaFilterRequest.EpsgCode); } var natureAreaInstitutionSummary = SqlServer.GetNatureAreaInstitutionSummary(geometry, epsgCode); var natureAreaInstitutionSummaryItems = new Collection <NatureAreaSummaryItem>(); foreach (var natureAreaInstitution in natureAreaInstitutionSummary) { natureAreaInstitutionSummaryItems.Add( new NatureAreaSummaryItem { Name = natureAreaInstitution.Item1, NatureAreaCount = natureAreaInstitution.Item2 } ); } return(natureAreaInstitutionSummaryItems); }
public object GetAreaSummary([FromBody] AreaFilterRequest areaFilterRequest) { var geometry = ""; var epsgCode = 0; if (areaFilterRequest != null) { geometry = areaFilterRequest.Geometry; epsgCode = areaFilterRequest.EpsgCode == null ? default(int) : int.Parse(areaFilterRequest.EpsgCode); } var areaSummary = SqlServer.GetAreaSummary(geometry, epsgCode); var r = new AreaSummary { AreaCount = SqlServer.GetAreaSummaryCount(AreaType.Fylke, geometry, epsgCode), ConservationAreaCount = SqlServer.GetAreaSummaryCount(AreaType.Verneområde, geometry, epsgCode) }; foreach (var areaSummaryItem in areaSummary) { if (areaSummaryItem.Item4 == AreaType.Fylke) { r.Areas.Add(areaSummaryItem.Item1, new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5)); } } foreach (var areaSummaryItem in areaSummary) { if (areaSummaryItem.Item4 != AreaType.Kommune) { continue; } var countyNumber = areaSummaryItem.Item1 / 100; if (r.Areas.ContainsKey(countyNumber)) { r.Areas[countyNumber] .Areas.Add(areaSummaryItem.Item1, new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5)); } } foreach (var areaSummaryItem in areaSummary) { if (areaSummaryItem.Item4 != AreaType.Verneområde) { continue; } var categoryName = Områdetyper.KodeTilNavn(areaSummaryItem.Item3); var category = areaSummaryItem.Item3; if (areaSummaryItem.Item3 == "Andre") { category = "OTHERS"; } if (r.ConservationAreas.ContainsKey(category)) { r.ConservationAreas[category].NatureAreaCount += areaSummaryItem.Item5; r.ConservationAreas[category] .Areas.Add(areaSummaryItem.Item1, new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5)); } else { var conservationAreaSummaryItem = new AreaSummaryItem(categoryName, areaSummaryItem.Item5); conservationAreaSummaryItem.Areas.Add(areaSummaryItem.Item1, new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5)); r.ConservationAreas.Add(category, conservationAreaSummaryItem); } } var areaHierarchicallySummaryJson = JObject.FromObject(r); return(areaHierarchicallySummaryJson); }
public object GetNatureAreaSummary([FromBody] AreaFilterRequest areaFilterRequest) { if (string.IsNullOrWhiteSpace(areaFilterRequest.Geometry) && cachedNatureAreaSummary != null) { return(cachedNatureAreaSummary); } var geometry = ""; if (areaFilterRequest != null) { geometry = areaFilterRequest.Geometry; } var natureAreaTypes = SqlServer.GetNatureAreaSummary(geometry); var natureAreaTypeHash = new CodeIds(); var decriptionVariableHash = new CodeIds(); foreach (var natureAreaTypeItem in natureAreaTypes) { if (natureAreaTypeItem.Item3) { if (natureAreaTypeHash.ContainsKey(natureAreaTypeItem.Item1)) { natureAreaTypeHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2); } else { natureAreaTypeHash[natureAreaTypeItem.Item1] = new HashSet <int> { natureAreaTypeItem.Item2 } }; } else { if (decriptionVariableHash.ContainsKey(natureAreaTypeItem.Item1)) { decriptionVariableHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2); } else { decriptionVariableHash[natureAreaTypeItem.Item1] = new HashSet <int> { natureAreaTypeItem.Item2 } }; } } CodeSummaryItem natureAreaTypeSummary = GetNatureAreaTypeSummary(natureAreaTypeHash); CodeSummaryItem descriptionVariableSummary = GetDescriptionVariableSummary(decriptionVariableHash); var r = new NatureAreaSummary { NatureAreaTypes = natureAreaTypeSummary, DescriptionVariables = descriptionVariableSummary }; var jo = JObject.FromObject(r); RemoveFields(jo, "HandledIds", true); if (jo.First != null) { RemoveFields(jo.First.First, "Name", false); RemoveFields(jo.First.First, "Url", false); RemoveFields(jo.First.First, "Count", false); } if (jo.Last != null) { RemoveFields(jo.Last.First, "Name", false); RemoveFields(jo.Last.First, "Url", false); RemoveFields(jo.Last.First, "Count", false); } if (string.IsNullOrWhiteSpace(areaFilterRequest.Geometry)) { cachedNatureAreaSummary = jo; } return(jo); }
private static int GetEpsg(AreaFilterRequest areaFilterRequest) { return(!string.IsNullOrWhiteSpace(areaFilterRequest?.EpsgCode) ? int.Parse(areaFilterRequest.EpsgCode) : Config.Settings.Map.SpatialReferenceSystemIdentifier); }
public JsonResult GetNatureAreaCountsByTheme([FromBody] AreaFilterRequest areaFilterRequest) { var counts = GetRedlistStore().GetNatureAreaCountsByTheme(areaFilterRequest?.Geometry, GetEpsg(areaFilterRequest)); return(new JsonResult(counts)); }
public object GetNatureAreaSummary(AreaFilterRequest areaFilterRequest) { var geometry = ""; if (areaFilterRequest != null) { geometry = areaFilterRequest.Geometry; } var natureAreaTypes = SqlServer.GetNatureAreaSummary(geometry); var natureAreaTypeHash = new CodeIds(); var decriptionVariableHash = new CodeIds(); foreach (var natureAreaTypeItem in natureAreaTypes) { if (natureAreaTypeItem.Item3) { if (natureAreaTypeHash.ContainsKey(natureAreaTypeItem.Item1)) { natureAreaTypeHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2); } else { natureAreaTypeHash[natureAreaTypeItem.Item1] = new HashSet <int> { natureAreaTypeItem.Item2 } }; } else { if (decriptionVariableHash.ContainsKey(natureAreaTypeItem.Item1)) { decriptionVariableHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2); } else { decriptionVariableHash[natureAreaTypeItem.Item1] = new HashSet <int> { natureAreaTypeItem.Item2 } }; } } var natureAreaTypeSummary = GetCodeSummaryHierarchy(natureAreaTypeHash, Naturkodetrær.Naturtyper); var descriptionVariableSummary = GetCodeSummaryHierarchy(decriptionVariableHash, Naturkodetrær.Naturvariasjon); var r = new NatureAreaSummary { NatureAreaTypes = natureAreaTypeSummary, DescriptionVariables = descriptionVariableSummary }; var jo = JObject.FromObject(r); RemoveFields(jo, "HandledIds", true); if (jo.First != null) { RemoveFields(jo.First.First, "Name", false); RemoveFields(jo.First.First, "Url", false); RemoveFields(jo.First.First, "Count", false); } if (jo.Last != null) { RemoveFields(jo.Last.First, "Name", false); RemoveFields(jo.Last.First, "Url", false); RemoveFields(jo.Last.First, "Count", false); } return(jo); }