public FileDownloader(Uri url) { Url = url; _client.DownloadProgressChanged += (sender, args) => { // calculate percentage var bytesIn = double.Parse(args.BytesReceived.ToString()); var totalBytes = double.Parse(args.TotalBytesToReceive.ToString()); var percentage = bytesIn / totalBytes * 100; var evArgs = new ProgressChangedEventArgs(int.Parse(Math.Truncate(percentage).ToString())); // notify subscribers about progress OnProgressChanged(evArgs); }; _client.DownloadFileCompleted += (sender, args) => { OnFileDownloadCompleted(new FileDownloadCompletedEventArgs()); }; }
protected virtual void OnProgressChanged(ProgressChangedEventArgs e) { if (ProgressChanged != null) ProgressChanged(this, e); }
private void OnProgressChanged(ProgressChangedEventArgs e) { if (ProgressChanged != null) ProgressChanged(null, e); }