|
namespace BusinessApp
{
using System;
using System.Runtime.Serialization;
using System.ServiceModel.DomainServices.Client.ApplicationServices;
using System.Windows;
using System.Windows.Controls;
/// <summary>
/// Main <see cref="Application"/> class.
/// </summary>
public partial class App : Application
{
/// <summary>
/// Creates a new <see cref="App"/> instance.
/// </summary>
public App()
{
InitializeComponent();
// Create a WebContext and add it to the ApplicationLifetimeObjects collection.
// This will then be available as WebContext.Current.
WebContext webContext = new WebContext();
webContext.Authentication = new FormsAuthentication();
//webContext.Authentication = new WindowsAuthentication();
this.ApplicationLifetimeObjects.Add(webContext);
}
private void Application_Startup(object sender, StartupEventArgs e)
{
// This will enable you to bind controls in XAML to WebContext.Current properties.
this.Resources.Add("WebContext", WebContext.Current);
// This will automatically authenticate a user when using Windows authentication or when the user chose "Keep me signed in" on a previous login attempt.
WebContext.Current.Authentication.LoadUser(this.Application_UserLoaded, null);
// Show some UI to the user while LoadUser is in progress
this.InitializeRootVisual();
}
/// <summary>
/// Invoked when the <see cref="LoadUserOperation"/> completes.
/// Use this event handler to switch from the "loading UI" you created in <see cref="InitializeRootVisual"/> to the "application UI".
/// </summary>
private void Application_UserLoaded(LoadUserOperation operation)
{
}
/// <summary>
/// Initializes the <see cref="Application.RootVisual"/> property.
/// The initial UI will be displayed before the LoadUser operation has completed.
/// The LoadUser operation will cause user to be logged in automatically if using Windows authentication or if the user had selected the "Keep me signed in" option on a previous login.
/// </summary>
protected virtual void InitializeRootVisual()
{
BusinessApp.Controls.BusyIndicator busyIndicator = new BusinessApp.Controls.BusyIndicator();
busyIndicator.Content = new MainPage();
busyIndicator.HorizontalContentAlignment = HorizontalAlignment.Stretch;
busyIndicator.VerticalContentAlignment = VerticalAlignment.Stretch;
this.RootVisual = busyIndicator;
}
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// If the app is running outside of the debugger then report the exception using a ChildWindow control.
if (!System.Diagnostics.Debugger.IsAttached)
{
// NOTE: This will allow the application to continue running after an exception has been thrown but not handled.
// For production applications this error handling should be replaced with something that will report the error to the website and stop the application.
e.Handled = true;
ErrorWindow.CreateNew(e.ExceptionObject);
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.