/// <summary> /// Starts downloading the request. /// </summary> /// <param name="request">The request data.</param> /// <param name="originator">The request's originator.</param> /// <returns>The active download.</returns> protected virtual IDownload DownloadAsync(Request request, INode originator) { var cancel = new CancellationTokenSource(); if (_filter.Invoke(request, originator)) { var task = LoadAsync(request, cancel.Token); var download = new Download(task, cancel, request.Address, originator); Add(download); task.ContinueWith(m => Remove(download)); return(download); } return(new Download(TaskEx.FromResult(default(IResponse)), cancel, request.Address, originator)); }
private void ApplyWebRequestFilters(HttpRequestMessage httpReq) { RequestFilter?.Invoke(httpReq); GlobalRequestFilter?.Invoke(httpReq); }
private void ApplyWebRequestFilters(HttpWebRequest client) { RequestFilter?.Invoke(client); GlobalRequestFilter?.Invoke(client); }
private void ApplyWebRequestFilters(HttpRequestMessage request) { RequestFilter?.Invoke(request); }