Example #1
0
        public StringResult Page(XrcUrl url, object parameters = null, IContext callerContext = null)
        {
            try
            {
                var parentRequest = callerContext == null ? null : callerContext.Request;
                var parentResponse = callerContext == null ? null : callerContext.Response;

                using (var stream = new MemoryStream())
                {
                    var request = new XrcRequest(url, parentRequest: parentRequest);
                    var response = new XrcResponse(stream, parentResponse: parentResponse);
                    var context = new Context(request, response);

                    context.CallerContext = callerContext;
                    AddParameters(context, parameters);

                    ProcessRequest(context);

                    context.CheckResponse();

                    response.Flush();

                    stream.Seek(0, SeekOrigin.Begin);

                    using (StreamReader reader = new StreamReader(stream, response.ContentEncoding))
                    {
                        return new StringResult(reader.ReadToEnd(), response.ContentEncoding, response.ContentType);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new PageException(url.AppRelaviteUrl, ex);
            }
        }
Example #2
0
        public XrcRequest(XrcUrl requestUrl, string httpMethod = "GET", HttpRequestBase parentRequest = null)
        {
            if (requestUrl == null)
                throw new ArgumentNullException("request");

            _httpMethod = httpMethod;
            _url = requestUrl;
            _innerRequest = parentRequest;

            if (_innerRequest == null)
            {
                _cookies = new HttpCookieCollection();
                _form = new NameValueCollection();
                _headers = new NameValueCollection();
                _serverVariables = new NameValueCollection();
                _contentEncoding = Encoding.UTF8;
            }
            else
            {
                _cookies = _innerRequest.Cookies;
                _form = _innerRequest.Form;
                _headers = _innerRequest.Headers;
                _serverVariables = _innerRequest.ServerVariables;
                _contentEncoding = _innerRequest.ContentEncoding;
            }

            _queryString = HttpUtility.ParseQueryString(_url.Query, _contentEncoding);
        }
Example #3
0
        public XrcRequest(HttpRequestBase innerRequest)
        {
            if (innerRequest == null)
                throw new ArgumentNullException("innerRequest");

            _httpMethod = innerRequest.HttpMethod;
            _url = new xrc.XrcUrl(VirtualPathUtility.ToAppRelative(innerRequest.RawUrl));
            _queryString = innerRequest.QueryString;
            _innerRequest = innerRequest;
            _cookies = _innerRequest.Cookies;
            _form = _innerRequest.Form;
            _headers = _innerRequest.Headers;
            _serverVariables = _innerRequest.ServerVariables;
            _contentEncoding = _innerRequest.ContentEncoding;
        }
Example #4
0
 public bool Match(XrcUrl url)
 {
     return _pageProvider.PageExists(url);
 }
Example #5
0
        private bool IsCanonicalUrl(IPage page, XrcUrl requestUri)
        {
            var canonicalPath = page.PageUrl.Path;
            var requestedPath = requestUri.Path;

            return string.Equals(canonicalPath, requestedPath, StringComparison.Ordinal);
        }
Example #6
0
 public bool Match(XrcUrl url)
 {
     return _xrcService.Match(url);
 }