public EcpFeatureDescriptor(EcpFeature id, string serverPath, string url, bool useAbsoluteUrl = false) { this.Id = id; this.Name = id.GetName(); this.ServerPath = serverPath; this.url = url; this.UseAbsoluteUrl = useAbsoluteUrl; }
private void ProcessFeatureRedirection(HttpContext httpContext, HttpRequest request) { string text = request.QueryString["ftr"]; if (!text.IsNullOrBlank()) { try { EcpFeature ecpFeature = (EcpFeature)Enum.Parse(typeof(EcpFeature), text, true); string text2 = "ftr=" + text; int num = request.Url.Query.IndexOf(text2, StringComparison.InvariantCultureIgnoreCase); string text3 = request.Url.Query.Substring(0, num) + request.Url.Query.Substring(num + text2.Length); EcpFeatureDescriptor featureDescriptor = ecpFeature.GetFeatureDescriptor(); string query = featureDescriptor.AbsoluteUrl.Query; text3 = ((text3.Length > 1 && !string.IsNullOrEmpty(query) && query.Contains("?")) ? ("&" + text3.Substring(1)) : ((text3 == "?") ? string.Empty : text3)); string text4 = (featureDescriptor.UseAbsoluteUrl ? featureDescriptor.AbsoluteUrl.ToEscapedString() : (request.Url.LocalPath + query)) + text3; Uri uri = new Uri(text4); NameValueCollection nameValueCollection = HttpUtility.ParseQueryString(uri.Query); StringBuilder stringBuilder = new StringBuilder(); foreach (object obj in nameValueCollection) { string text5 = (string)obj; if (!string.IsNullOrEmpty(text5)) { stringBuilder.AppendFormat("{0}={1}&", text5, nameValueCollection[text5].Split(new char[] { ',' })[0]); } } text4 = text4.Replace(uri.Query, "?" + stringBuilder.ToString().TrimEnd(new char[] { '&' })); ExTraceGlobals.RedirectTracer.TraceInformation <string>(0, 0L, "[RequestFilterModule::ProcessFeatureRedirection] Redirect to {0}).", text4); httpContext.Response.Redirect(text4); } catch (ArgumentException innerException) { throw new BadQueryParameterException("ftr", innerException); } } }
public static string GetName(this EcpFeature ecpFeature) { return(ecpFeature.ToString()); }
public static EcpFeatureDescriptor GetFeatureDescriptor(this EcpFeature ecpFeature) { return(EcpFeatureExtension.ecpFeatures[ecpFeature]); }
public EcpFeatureQueryProcessor(EcpFeature ecpFeature) { this.ecpFeature = ecpFeature; this.Name = ecpFeature.GetName(); }