/// <summary> /// After the thread complete, load the xaml home document /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { // First, handle the case where an exception was thrown. if (e.Error != null) { Tracer.Error("HomeDocument.bw_RunWorkerCompleted", e.Error); } else { Tracer.Verbose("HomeDocument:bw_RunWorkerCompleted", "START"); UrlSaveHelper hlp = (UrlSaveHelper)e.Result; // Finally, handle the case where the operation succeeded. if (File.Exists(base.Context.FullName)) { try { FileStream fs = File.OpenRead(base.Context.FullName); FlowDocViewer.Document = (FlowDocument)XamlReader.Load(fs); fs.Close(); Tracer.Verbose("HomeDocument:bw_RunWorkerCompleted", "Internet document loaded"); } catch (Exception) { //load the config from resources using (Stream fs = Application.ResourceAssembly.GetManifestResourceStream("ReflectionStudio.Resources.Embedded.Home.xaml")) { if (fs == null) { throw new InvalidOperationException("Could not find embedded resource"); } FlowDocViewer.Document = (FlowDocument)XamlReader.Load(fs); fs.Close(); Tracer.Verbose("HomeDocument:bw_RunWorkerCompleted", "Local document loaded"); } } ParseHyperlink(FlowDocViewer.Document); WaitPanel.Stop(); Tracer.Verbose("HomeDocument:bw_RunWorkerCompleted", "END"); } } }
/// <summary> /// Use UrlSaveHelper to get the home document from internet /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void bw_DoWork(object sender, DoWorkEventArgs e) { Tracer.Verbose("HomeDocument:bw_DoWork", "START"); try { UrlSaveHelper hlp = (UrlSaveHelper)e.Argument; hlp.SaveUrlContent(); } catch (Exception all) { Tracer.Error("HomeDocument.bw_DoWork", all); } finally { Tracer.Verbose("HomeDocument:bw_DoWork", "END"); } }