public virtual void OnComplete(DownloadFileEventArgs e) { EventHandler <DownloadFileEventArgs> handler = complete; if (handler != null) { handler(this, e); } }
public virtual void OnComplete(DownloadFileEventArgs e) { EventHandler<DownloadFileEventArgs> handler = complete; if (handler != null) { handler(this, e); } }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="args"></param> protected override void OnBeginDownloadSourceFile( object sender, DownloadFileEventArgs args ) { //Console.Write(Constants.DownloadingSourceCode); Console.Write("{0}Downloading {1}", String.Empty, args.TargetFileName); //Console.Write("{0}Downloading {1}", AppSettings.Indent, args.TargetFileName); }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="args"></param> protected override void OnDownloadSourceFileAfterEulaAccepted( object sender, DownloadFileEventArgs args ) { Console.Write( "{0}EULA accepted. Downloading {1} ", AppSettings.Indent, args.TargetFileName ); }
public async void downloadFileAsync(string url, IsolatedStorageFileStream filestream) { SynchronizationContext ctx = SynchronizationContext.Current; HttpWebRequest request = (HttpWebRequest)WebRequest.CreateHttp(new Uri(url)); request.Method = "GET"; Logger.log("DownloadRequestHandler", "Downloading " + url + " asynchronously..."); request.BeginGetResponse(async callbackResult => { try { HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult); Logger.log("DownloadRequestHandler", "Status: " + (int)response.StatusCode + " " + response.StatusDescription); if (response.Headers["Content-Length"] != null) { Logger.log("DownloadRequestHandler", "Content length: " + response.Headers["Content-Length"]); } else { Logger.log("DownloadRequestHandler", "Content length: unknown"); } Stream responseStream = response.GetResponseStream(); BinaryReader br = new BinaryReader(responseStream); int responseBufferSize = 4096; int responseBytesRead = 0; int responseTotalBytesRead = 0; byte[] responseBuffer = new byte[responseBufferSize]; while ((responseBytesRead = br.Read(responseBuffer, 0, responseBuffer.Length)) > 0) { responseTotalBytesRead += responseBytesRead; await filestream.WriteAsync(responseBuffer, 0, responseBuffer.Length); } filestream.Close(); Logger.log("DownloadRequestHandler", "Wrote " + responseTotalBytesRead + " bytes"); DownloadFileEventArgs args = new DownloadFileEventArgs(); args.file = filestream.Name; args.size = responseTotalBytesRead; ctx.Post(result => { DownloadFile df = (DownloadFile)callbackResult.AsyncState; df.OnComplete((DownloadFileEventArgs)result); }, args); } catch (WebException ex) { // check if we have an expired or self-signed cert if (ex.Status == WebExceptionStatus.UnknownError) { if (ex.Response.Headers.Count == 0) { Logger.log("DownloadRequestHandler", "Invalid SSL certificate, returning a 400 Bad Request"); throw new Exception("Download Handler Exception: Invalid SSL certificate, returning a 400 Bad Request"); } else { Logger.log("DownloadRequestHandler", "File not found, returning a 404"); throw new Exception("Download Handler Exception: File not found, returning a 404"); } } else { Logger.log("DownloadRequestHandler", "400 Bad Request"); Logger.log("DownloadRequestHandler", ex.Status.ToString()); throw; } } }, this); }