Ejemplo n.º 1
0
 private static string CreateOrCondition(string urlParams)
 {
     string str = HttpUtility.UrlDecode(urlParams).Split(new char[] { '&' }).SingleOrDefault<string>(p => p.StartsWith("fh_location=", StringComparison.InvariantCultureIgnoreCase));
     if (string.IsNullOrEmpty(str))
     {
         str = urlParams;
     }
     Location location = new Location(str.Replace("fh_location=", ""));
     SearchCriterion criterion = location.getSearchCriterion();
     if (criterion != null)
     {
         location.removeSearchCriteria();
     }
     Criterion criterion2 = location.getLastCriterion();
     Criterion criterion3 = location.getCriterion(criterion2.getAttributeName());
     if (criterion3 == criterion2)
     {
         if (criterion != null)
         {
             location.addCriterion(criterion);
             return location.toString();
         }
         return urlParams;
     }
     string str2 = criterion2.toString();
     str2 = str2.Substring(str2.IndexOf('{') + 1).Replace("}", "");
     location = location.removeLastCriterion();
     string str3 = criterion3.toString().Replace("}", ";" + str2 + "}");
     location = location.removeCriteria(criterion3.getAttributeName());
     Criterion criterion4 = CriterionFactory.parse(str3);
     location.addCriterion(criterion4);
     if (criterion != null)
     {
         location.addCriterion(criterion);
     }
     return location.toString();
 }
Ejemplo n.º 2
0
 public void SetHrefLinks(Query query)
 {
     Location location = new Location(query.getLocation());
     int offset = query.getListStartIndex();
     query.removeListStartIndex();
     int num2 = this.Facets.Count<FacetItem>(f => f.Selected);
     string ticked = HttpContext.Current.Request["fh_ticked"] ?? "";
     foreach (FacetItem item in this.Facets)
     {
         Location location2 = new Location(location);
         MultiValuedCriterion mvc = location2.getCriterion("schematitle") as MultiValuedCriterion;
         if (mvc != null)
         {
             (from f in this.Facets
                 where !f.Enabled
                 select f).ToList<FacetItem>().ForEach(f => mvc.getGreaterThan().remove(f.Value));
             if (string.IsNullOrEmpty(ticked))
             {
                 if (num2 == mvc.getGreaterThan().valueSet().size())
                 {
                     item.Selected = false;
                     mvc.getGreaterThan().clear().add(item.Value);
                 }
             }
             else
             {
                 if (ticked.Split(new char[] { ',' }).Contains<string>(item.Value))
                 {
                     mvc.getGreaterThan().remove(item.Value);
                 }
                 else
                 {
                     mvc.getGreaterThan().add(item.Value);
                 }
                 if (mvc.getGreaterThan().isEmpty())
                 {
                     location2.removeCriteria("schematitle");
                 }
             }
             query.setLocation(location2);
             item.Href = query.ToFhParams();
             if (string.IsNullOrEmpty(ticked))
             {
                 item.Href = item.Href + "&fh_ticked=" + item.Value;
             }
             else
             {
                 List<string> items = ticked.Split(new char[] { ',' }).ToList<string>();
                 (from f in this.Facets
                     where !f.Enabled
                     select f).ToList<FacetItem>().ForEach(f => items.Remove(f.Value));
                 if (items.Contains(item.Value))
                 {
                     items.Remove(item.Value);
                 }
                 else
                 {
                     items.Add(item.Value);
                 }
                 item.Href = Regex.Replace(item.Href, @"&fh_ticked=[\w|,]+", "");
                 if (items.Count > 0)
                 {
                     item.Href = item.Href + "&fh_ticked=" + string.Join(",", items);
                 }
             }
         }
     }
     query.setLocation(location);
     query.setListStartIndex(offset);
     this.Facets.ToList<FacetItem>().ForEach(delegate (FacetItem f) {
         if (f.Enabled)
         {
             f.Selected = false;
         }
         List<string> list = ticked.Split(new char[] { ',' }).ToList<string>();
         if (f.Enabled && list.Contains(f.Value))
         {
             f.Selected = true;
         }
     });
 }
Ejemplo n.º 3
0
 private static Location Resetfilters(string fh_location, bool includeSearchTerm, int publicationId)
 {
     Location location = new Location(fh_location);
     Criterion criterion = location.getCriterion("publicationid");
     Criterion criterion2 = location.getCriterion("schematitle");
     Criterion criterion3 = location.getCriterion(string.Format("{0}_product_groups", publicationId));
     SearchCriterion criterion4 = location.getSearchCriterion();
     location.removeAllCriteria();
     if (criterion != null)
     {
         location.addCriterion(criterion);
     }
     if (criterion2 != null)
     {
         location.addCriterion(criterion2);
     }
     if (criterion3 != null)
     {
         location.addCriterion(criterion3);
     }
     if (includeSearchTerm && (criterion4 != null))
     {
         location.addCriterion(criterion4);
     }
     return location;
 }