private void WebClientOnDownloadFileCompleted(object sender, AsyncCompletedEventArgs asyncCompletedEventArgs) { if (asyncCompletedEventArgs.Cancelled) { if (Exists()) { Delete(); } Cancelled.Handle(h => h(this)); return; } if (asyncCompletedEventArgs.Error != null) { DownloadFailed.Handle(h => h(this, asyncCompletedEventArgs.Error)); Trace.Write(asyncCompletedEventArgs.Error); return; } if (Exists()) { Downloaded.Handle(h => h(this)); } }