Exemple #1
0
 public RefinerItem getRefiner()
 {
     if (GetSelectedRefiner() != null)
     {
         this.refiner = GetSelectedRefiner();
     }
     return(this.refiner);
 }
Exemple #2
0
        /// <summary>
        /// Get the list of refiners from the query string
        /// in theory there should only be one refiner parameter
        /// to have more than one, we would need multi-select on the reuslts interface
        /// like check boxes
        /// input will be r=name:value
        /// where name is the name of an aggregator and needs to be translated to a field name
        /// value is the string to look for
        /// </summary>
        ///
        /// <returns>a refinerItem reflecting the refinement requested in the query or null if no refinement</returns>
        private RefinerItem GetSelectedRefiner()
        {
            RefinerItem selectedRefiner = new RefinerItem();

            HttpContextBase currentHttpContext = SystemManager.CurrentHttpContext;
            var             nameValues         = HttpUtility.ParseQueryString(currentHttpContext.Request.QueryString.ToString());

            string refiner = GetParamFromURLQueryString(refinerParameter);

            if (refiner != null && refiner.IndexOf(":") > 0)
            {
                selectedRefiner.RefinementName  = refiner.Split(':')[0];
                selectedRefiner.RefinementValue = refiner.Split(':')[1];
                nameValues.Remove(refinerParameter);
                selectedRefiner.RefinementUrl = String.Format("{0}?{1}", currentHttpContext.Request.Url.AbsolutePath, nameValues);
            }
            else
            {
                selectedRefiner = null;
            }
            return(selectedRefiner);
        }