Esempio n. 1
0
        /// <summary>
        /// The url etag handler to use.
        /// </summary>
        /// <param name="request">An HTTP request.</param>
        /// <param name="response">An HTTP response.</param>
        /// <param name="urlEtagHandlingMethod">The url etag handler method to use.</param>
        /// <param name="urlEtagQuerystringName">The querystring parameter name that contains the url etag.</param>
        /// <param name="etag">The etag the url etag should match.</param>
        /// <returns></returns>
        protected IUrlEtagHandler GetUrlEtagHandler(HttpRequestBase request, HttpResponseBase response, UrlEtagHandlingMethodType urlEtagHandlingMethod, string urlEtagQuerystringName, string etag)
        {
            if (urlEtagHandlingMethod == UrlEtagHandlingMethodType.None || !HttpRequestHeaderHelper.HasQuerystringParameter(request, urlEtagQuerystringName))
            {
                return null;
            }

            var urlEtag = HttpRequestHeaderHelper.GetQuerystringParameterValue(request, urlEtagQuerystringName);
            if (urlEtag == etag)
            {
                return null;
            }
            var newLocation = new UriBuilder(request.Url);
            newLocation.EditQueryArgument(urlEtagQuerystringName, etag);

            switch (urlEtagHandlingMethod)
            {
                case UrlEtagHandlingMethodType.ContentLocation:
                    return new UrlEtagHandlerContentLocation(HttpResponseHeaderHelper, urlEtagQuerystringName);
                case UrlEtagHandlingMethodType.MovedPermanently:
                    return new UrlEtagHandlerMovedPermanently(HttpResponseHeaderHelper, urlEtagQuerystringName);
                case UrlEtagHandlingMethodType.TemporaryRedirect:
                    return new UrlEtagHandlerTemporaryRedirect(HttpResponseHeaderHelper, urlEtagQuerystringName);
                default:
                    return null;
            }
        }
        /// <summary>
        /// The url etag handler to use.
        /// </summary>
        /// <param name="request">An HTTP request.</param>
        /// <param name="response">An HTTP response.</param>
        /// <param name="urlEtagHandlingMethod">The url etag handler method to use.</param>
        /// <param name="urlEtagQuerystringName">The querystring parameter name that contains the url etag.</param>
        /// <param name="etag">The etag the url etag should match.</param>
        /// <returns></returns>
        protected IUrlEtagHandler GetUrlEtagHandler(HttpRequestBase request, HttpResponseBase response, UrlEtagHandlingMethodType urlEtagHandlingMethod, string urlEtagQuerystringName, string etag)
        {
            if (urlEtagHandlingMethod == UrlEtagHandlingMethodType.None || !HttpRequestHeaderHelper.HasQuerystringParameter(request, urlEtagQuerystringName))
            {
                return(null);
            }

            var urlEtag = HttpRequestHeaderHelper.GetQuerystringParameterValue(request, urlEtagQuerystringName);

            if (urlEtag == etag)
            {
                return(null);
            }
            var newLocation = new UriBuilder(request.Url);

            newLocation.EditQueryArgument(urlEtagQuerystringName, etag);

            switch (urlEtagHandlingMethod)
            {
            case UrlEtagHandlingMethodType.ContentLocation:
                return(new UrlEtagHandlerContentLocation(HttpResponseHeaderHelper, urlEtagQuerystringName));

            case UrlEtagHandlingMethodType.MovedPermanently:
                return(new UrlEtagHandlerMovedPermanently(HttpResponseHeaderHelper, urlEtagQuerystringName));

            case UrlEtagHandlingMethodType.TemporaryRedirect:
                return(new UrlEtagHandlerTemporaryRedirect(HttpResponseHeaderHelper, urlEtagQuerystringName));

            default:
                return(null);
            }
        }