Beispiel #1
0
 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;
 }
Beispiel #2
0
        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]);
 }
Beispiel #5
0
 public EcpFeatureQueryProcessor(EcpFeature ecpFeature)
 {
     this.ecpFeature = ecpFeature;
     this.Name       = ecpFeature.GetName();
 }