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(); }