PageRenderTime 45ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/V2.2/trunk/RI/Silverlight/StockTraderRI.Modules.Market.Silverlight.Tests/App.xaml.cs

#
C# | 83 lines | 53 code | 7 blank | 23 comment | 1 complexity | 3ee9c651a2e7e050f50894ca760add6d MD5 | raw file
  1. //===================================================================================
  2. // Microsoft patterns & practices
  3. // Composite Application Guidance for Windows Presentation Foundation and Silverlight
  4. //===================================================================================
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
  7. // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  8. // LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  9. // FITNESS FOR A PARTICULAR PURPOSE.
  10. //===================================================================================
  11. // The example companies, organizations, products, domain names,
  12. // e-mail addresses, logos, people, places, and events depicted
  13. // herein are fictitious. No association with any real company,
  14. // organization, product, domain name, email address, logo, person,
  15. // places, or events is intended or should be inferred.
  16. //===================================================================================
  17. using System;
  18. using System.Collections.Generic;
  19. using System.Linq;
  20. using System.Net;
  21. using System.Windows;
  22. using System.Windows.Controls;
  23. using System.Windows.Documents;
  24. using System.Windows.Input;
  25. using System.Windows.Media;
  26. using System.Windows.Media.Animation;
  27. using System.Windows.Shapes;
  28. using Microsoft.Silverlight.Testing;
  29. namespace StockTraderRI.Modules.Market.Tests
  30. {
  31. public partial class App : Application
  32. {
  33. public App()
  34. {
  35. this.Startup += this.Application_Startup;
  36. this.Exit += this.Application_Exit;
  37. this.UnhandledException += this.Application_UnhandledException;
  38. InitializeComponent();
  39. }
  40. private void Application_Startup(object sender, StartupEventArgs e)
  41. {
  42. this.RootVisual = UnitTestSystem.CreateTestPage();
  43. }
  44. private void Application_Exit(object sender, EventArgs e)
  45. {
  46. }
  47. private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
  48. {
  49. // If the app is running outside of the debugger then report the exception using
  50. // the browser's exception mechanism. On IE this will display it a yellow alert
  51. // icon in the status bar and Firefox will display a script error.
  52. if (!System.Diagnostics.Debugger.IsAttached)
  53. {
  54. // NOTE: This will allow the application to continue running after an exception has been thrown
  55. // but not handled.
  56. // For production applications this error handling should be replaced with something that will
  57. // report the error to the website and stop the application.
  58. e.Handled = true;
  59. Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
  60. }
  61. }
  62. private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
  63. {
  64. try
  65. {
  66. string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
  67. errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
  68. System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight 2 Application " + errorMsg + "\");");
  69. }
  70. catch (Exception)
  71. {
  72. }
  73. }
  74. }
  75. }