protected bool OnResponseReceived(DownloadResponse response) { var eventArgs = new ResponseReceivedEventArgs(Request, response); ResponseReceived?.Invoke(this, eventArgs); return(eventArgs.Abort); }
private bool OnResponseReceived(DownloadResponse response) { var args = new ResponseReceivedEventArgs(Request, response); ResponseReceived?.Invoke(this, args); return(args.Abort); }
protected async Task <HttpWebResponse> GetResponse(HttpWebRequest webRequest, CancellationToken stopToken) { HttpWebResponse webResponse; try { webResponse = (HttpWebResponse)await webRequest.GetResponseAsync(); } catch (WebException we) { webResponse = we.Response as HttpWebResponse; if (webResponse == null) { throw; } } var response = new DownloadResponse(webResponse); if (OnResponseReceived(response)) { throw new OperationCanceledException("Aborted by the user."); } await ShrinkStream(response.Range.Start - Range.Start, stopToken); if (response.ContentLength > 0) { TotalSize = response.IsPartial ? response.ContentLength + TotalWritten : response.ContentLength; } if ((response.StatusCode != HttpStatusCode.OK) && (response.StatusCode != HttpStatusCode.PartialContent)) { throw new DownloadException($"Failed to start downloading file. {webResponse.StatusDescription}"); } _tries = 0; return(webResponse); }