public SearchViewModel(SearchParameters parameters, SearchResult searchResult, Article.SearchResult articleResult = null) { if (articleResult == null) { articleResult = new Article.SearchResult { NumFound = 0, Items = new List <Article.SearchResultItem>() }; } Text = parameters.Text; FacetParameters = parameters.Facets; Result = new SearchResultViewModel(searchResult); ResultArticles = articleResult; Limit = searchResult.Limit; Offset = searchResult.Offset; NumFound = searchResult.NumFound; NumFoundTotal = searchResult.NumFound + articleResult.NumFound; orderby = parameters.orderby.ToString(); page = 1; var placeResolver = new Service.PlaceResolver(); areaDictionary = placeResolver.GetAreas(); if (Offset != 1) { page = (Offset / Limit) + 1; } //Finne totalt antall sider pages = NumFound / Limit; //Test om det er noe bak komma.... if ((Limit * pages) != NumFound) { pages = pages + 1; } startPage = page; endPage = page; }
public static List <FacetValue> OrganizationCreateFromList(IEnumerable <Models.Facet.FacetValue> facetResults) { List <FacetValue> facets = new List <FacetValue>(); var placeResolver = new Service.PlaceResolver(); var areaDictionary = placeResolver.GetAreas(); var areas = facetResults.Where(fy => fy.Name.Length == 4 && fy.Name != "0/21" && fy.Name != "0/22").Select(fy => fy).Distinct().OrderBy(fo => fo.Name).ToList(); var places = facetResults.Where(p => !p.Name.Contains("/")).Select(p => p).Distinct().OrderBy(po => po.Name).ToList(); foreach (var place in places) { facets.Add(new FacetValue(place)); } foreach (var area in areas) { var municipalities = facetResults.Where(k => k.Name.Length > 4 && k.Name.StartsWith(area.Name)).Select(ko => ko).OrderBy(ko => ko.Name).ToList(); facets.Add(new FacetValue(area, municipalities, areaDictionary)); } return(facets); }