client/src/Iri.Modernisation/App.xaml.cs
author Matthieu Totet
Fri, 20 Nov 2009 13:58:39 +0100
changeset 6 cde7fe7f284e
parent 4 cf756528609e
child 24 c031f1132dde
permissions -rw-r--r--
Minor Modification
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     1
using System;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     2
using System.Collections.Generic;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     3
using System.Linq;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     4
using System.Net;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     5
using System.Windows;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     6
using System.Windows.Controls;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     7
using System.Windows.Documents;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     8
using System.Windows.Input;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     9
using System.Windows.Media;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    10
using System.Windows.Media.Animation;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    11
using System.Windows.Shapes;
4
cf756528609e Adding Internationalization features
Matthieu Totet
parents: 0
diff changeset
    12
using System.Threading;
cf756528609e Adding Internationalization features
Matthieu Totet
parents: 0
diff changeset
    13
using System.Globalization;
6
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    14
using System.Resources;
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    15
using Iri.Modernisation.BaseMVVM.Commands;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
namespace Iri.Modernisation
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
    public partial class App : Application
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
        public App()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    23
            this.Startup += this.Application_Startup;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    24
            this.Exit += this.Application_Exit;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    25
            this.UnhandledException += this.Application_UnhandledException;
6
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    26
            Commands.FlipView.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(FlipView_Executed);
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    27
            InitializeComponent();
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    28
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
6
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    30
        void FlipView_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    31
        {
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    32
            CultureInfo culture = new CultureInfo("en-US");
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    33
            Thread.CurrentThread.CurrentCulture = culture;
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    34
            Thread.CurrentThread.CurrentUICulture = culture;
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    35
           
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    36
            this.RootVisual = new MainPage();
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
        private void Application_Startup(object sender, StartupEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
        {
6
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    41
            //CultureInfo culture = new CultureInfo("en-US");
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    42
            //Thread.CurrentThread.CurrentCulture = culture;
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    43
            //Thread.CurrentThread.CurrentUICulture = culture; 
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    44
           
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
            this.RootVisual = new MainPage();
6
cde7fe7f284e Minor Modification
Matthieu Totet
parents: 4
diff changeset
    46
          
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    47
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    48
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    49
        private void Application_Exit(object sender, EventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    50
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    51
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    52
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    53
        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    54
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    55
            // If the app is running outside of the debugger then report the exception using
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    56
            // the browser's exception mechanism. On IE this will display it a yellow alert 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    57
            // icon in the status bar and Firefox will display a script error.
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    58
            if (!System.Diagnostics.Debugger.IsAttached)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    59
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    60
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
                // NOTE: This will allow the application to continue running after an exception has been thrown
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
                // but not handled. 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
                // For production applications this error handling should be replaced with something that will 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    64
                // report the error to the website and stop the application.
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    65
                e.Handled = true;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    66
                Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    67
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    68
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    69
        private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    70
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    71
            try
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    72
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    73
                string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    74
                errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    75
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    76
                System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    77
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    78
            catch (Exception)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    79
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    80
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    81
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    82
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    83
}