private static void FixOrganizationParameters(SearchByOrganizationParameters parameters)
 {
     if (parameters.OrganizationSeoName == "organisasjon")
     {
         parameters.OrganizationSeoName = null;
     }
 }
        /// <summary>
        /// Shows metadata by selected organization
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns>/etatvis-oversikt/{organization}</returns>
        public ActionResult Organization(SearchByOrganizationParameters parameters)
        {
            parameters.AddDefaultFacetsIfMissing();
            FixOrganizationParameters(parameters);
            SearchResultForOrganization searchResult = _searchService.SearchByOrganization(parameters);
            var model = new SearchByOrganizationViewModel(parameters, searchResult);

            return(View(model));
        }
        public SearchByOrganizationViewModel(SearchByOrganizationParameters parameters, SearchResultForOrganization searchResult)
            : base(parameters, searchResult)
        {
            EnabledFacets = new List <string> {
                "themes", "types", "nationalinitiatives", "areas", "distributionProtocols", "dataAccesses"
            };

            if (parameters.OrganizationSeoName != null)
            {
                OrganizationSeoName = parameters.OrganizationSeoName;
            }
            if (searchResult.Organization != null)
            {
                OrganizationName    = searchResult.Organization.Name;
                OrganizationLogoUrl = searchResult.Organization.LogoUrl;
            }

            var organizations = searchResult.Organizations();

            OrganizationSelectList = new SelectList(organizations, "key", "value", parameters.OrganizationSeoName);
        }
        public SearchResultForOrganization SearchByOrganization(SearchByOrganizationParameters parameters)
        {
            parameters.CreateFacetOfOrganizationSeoName();
            parameters.AddComplexFacetsIfMissing();

            ISolrQuery query = parameters.BuildQuery;

            SolrQueryResults <MetadataIndexDoc> queryResults = _solrInstance.Query(query, new QueryOptions
            {
                FilterQueries = parameters.BuildFilterQueries(),
                OrderBy       = parameters.OrderBy(),
                Rows          = parameters.Limit,
                Start         = parameters.Offset - 1, //solr is zero-based - we use one-based indexing in api
                Facet         = parameters.BuildFacetParameters()
            });

            SearchResult        searchResult        = CreateSearchResults(queryResults, parameters);
            Task <Organization> getOrganizationTask = _organizationService.GetOrganizationByName(parameters.OrganizationSeoName);
            Organization        organization        = getOrganizationTask.Result;

            return(new SearchResultForOrganization(organization, searchResult));
        }