using System;
using System.Windows;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Messaging;
using SchoolSample.Common;
namespace SchoolSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow
{
#region "Private Data"
private Home homeScreen;
private CoursePage coursePage;
private InstructorPage instructorPage;
private StudentPage studentPage;
#endregion "Private Data"
#region "Constructor"
public MainWindow()
{
InitializeComponent();
// register for RaiseErrorMessage
AppMessages.RaiseErrorMessage.Register(this, OnRaiseErrorMessage);
// register for PleaseConfirmMessage
AppMessages.PleaseConfirmMessage.Register(this, OnPleaseConfirmMessage);
// register for StatusUpdateMessage
AppMessages.StatusUpdateMessage.Register(this, OnStatusUpdateMessage);
// register for FilterTextMessage
AppMessages.FilterTextMessage.Register(this, OnFilterTextMessage);
if (!ViewModelBase.IsInDesignModeStatic)
{
// Use MEF To load the View Model
DataContext = App.Container.GetExportedValue<ViewModelBase>(
ViewModelTypes.MainPageViewModel);
}
// set up the current window
homeScreen = new Home();
ContentFrame.Navigate(homeScreen);
}
#endregion "Constructor"
#region "Private Event Handler"
private void Link0_Click(object sender, RoutedEventArgs e)
{
if (homeScreen == null) homeScreen = new Home();
ContentFrame.Navigate(homeScreen);
}
private void InstructorLink_Click(object sender, RoutedEventArgs e)
{
if (instructorPage == null) instructorPage = new InstructorPage();
ContentFrame.Navigate(instructorPage);
}
private void StudentLink_Click(object sender, RoutedEventArgs e)
{
if (studentPage == null) studentPage = new StudentPage();
ContentFrame.Navigate(studentPage);
}
private void CourseLink_Click(object sender, RoutedEventArgs e)
{
if (coursePage == null) coursePage = new CoursePage();
ContentFrame.Navigate(coursePage);
}
#endregion "Private Event Handler"
#region "RaiseErrorMessage"
private void OnRaiseErrorMessage(Exception ex)
{
if (ex != null)
{
ErrorWindow win = ErrorWindow.CreateNew(ex);
LayoutRoot.Children.Add(win);
win.Show();
}
}
#endregion "RaiseErrorMessage"
#region "PleaseConfirmMessage"
private static void OnPleaseConfirmMessage(DialogMessage dialogMessage)
{
if (dialogMessage != null)
{
MessageBoxResult result = MessageBox.Show(dialogMessage.Content,
dialogMessage.Caption, dialogMessage.Button);
dialogMessage.ProcessCallback(result);
}
}
#endregion "PleaseConfirmMessage"
#region "StatusUpdateMessage"
private static void OnStatusUpdateMessage(DialogMessage dialogMessage)
{
if (dialogMessage != null)
{
MessageBoxResult result = MessageBox.Show(dialogMessage.Content,
dialogMessage.Caption, dialogMessage.Button);
dialogMessage.ProcessCallback(result);
}
}
#endregion "StatusUpdateMessage"
#region "FilterTextMessage"
private void OnFilterTextMessage(NotificationMessageAction<string> notification)
{
if (notification != null)
{
var win = new FilterTextWindow(notification);
LayoutRoot.Children.Add(win);
win.Show();
}
}
#endregion "FilterTextMessage"
}
}