public FubuContinuation Redirect() { return(FubuContinuation.RedirectTo(new LoginRequest { Url = _currentRequest.RelativeUrl() }, "GET")); }
public HttpRequestData get_request_data() { return(new HttpRequestData { FullUrl = _request.FullUrl(), HttpMethod = _request.HttpMethod(), RawUrl = _request.RawUrl(), RelativeUrl = _request.RelativeUrl() }); }
public UrlContextModel Get(UrlRequest request) { return(new UrlContextModel() { RelativeUrl = _currentHttpRequest.RelativeUrl(), RawUrl = _currentHttpRequest.RawUrl(), FullUrl = _currentHttpRequest.ToFullUrl(request.FullUrl ?? "/") }); }
public override MiddlewareContinuation Invoke(ICurrentHttpRequest request, IHttpWriter writer) { if (request.IsNotHttpMethod("GET", "HEAD")) { return(MiddlewareContinuation.Continue()); } var file = _files.Find(request.RelativeUrl()); if (file == null) { return(MiddlewareContinuation.Continue()); } if (_settings.DetermineStaticFileRights(file) != AuthorizationRight.Allow) { return(MiddlewareContinuation.Continue()); } if (request.IsHead()) { return(new WriteFileHeadContinuation(writer, file, HttpStatusCode.OK)); } if (request.IfMatchHeaderDoesNotMatchEtag(file)) { return(new WriteStatusCodeContinuation(writer, HttpStatusCode.PreconditionFailed, "If-Match test failed")); } if (request.IfNoneMatchHeaderMatchesEtag(file)) { return(new WriteFileHeadContinuation(writer, file, HttpStatusCode.NotModified)); } if (request.IfModifiedSinceHeaderAndNotModified(file)) { return(new WriteFileHeadContinuation(writer, file, HttpStatusCode.NotModified)); } if (request.IfUnModifiedSinceHeaderAndModifiedSince(file)) { return(new WriteStatusCodeContinuation(writer, HttpStatusCode.PreconditionFailed, "File has been modified")); } return(new WriteFileContinuation(writer, file)); }
/// <summary> /// Converts the given url to a url relative to the current request /// </summary> /// <param name="request"></param> /// <param name="url"></param> /// <returns></returns> public static string ToRelativeContentUrl(this ICurrentHttpRequest request, string url) { var current = request.RelativeUrl().TrimStart('/'); var contentUrl = url.TrimStart('/'); if (current == string.Empty) { return(contentUrl); } if (contentUrl.StartsWith(current)) { return(contentUrl.Substring(current.Length).TrimStart('/')); } var prepend = current.Split('/').Select(x => "..").Join("/"); var relativeUrl = prepend.AppendUrl(contentUrl); return(relativeUrl); }
public RequestLog BuildForCurrentRequest() { var report = new ValueReport(); _requestData.WriteReport(report); var chainId = _currentChain.OriginatingChain == null ? Guid.Empty : _currentChain.OriginatingChain.UniqueId; var log = new RequestLog { ChainId = chainId, Time = _systemTime.UtcNow(), RequestData = report, ChainUrl = _urls.UrlFor(new ChainRequest { Id = chainId }), DetailsUrl = _urls.UrlFor(new ChainDetailsRequest { Id = chainId }) }; if (_currentChain.OriginatingChain.Route != null) { log.HttpMethod = _request.HttpMethod(); log.Endpoint = _request.RelativeUrl(); } else if (_currentChain.OriginatingChain.InputType() != null) { log.Endpoint = _currentChain.OriginatingChain.InputType().FullName; log.HttpMethod = "n/a"; } else { log.Endpoint = ChainVisualization.TitleForChain(_currentChain.OriginatingChain); log.HttpMethod = "n/a"; } log.ReportUrl = _urls.UrlFor(log); return(log); }
public static string ToRelativeUrl(this ICurrentHttpRequest request, string url) { var requestUrl = request.RelativeUrl(); if (requestUrl.IsEmpty() || requestUrl == "/") { return(url.TrimStart('/')); } var current = requestUrl.TrimStart('/'); var contentUrl = url.TrimStart('/'); if (current == string.Empty) { return(contentUrl); } var prepend = current.Split('/').Select(x => "..").Join("/"); var relativeUrl = prepend.AppendUrl(contentUrl); return(relativeUrl); }
public bool Write(AssetPath asset, Action <IEnumerable <AssetFile> > writeHeaders) { _cache.Enqueue(_request.RelativeUrl()); return(_writer.Write(asset, writeHeaders)); }