using System;
using GalaSoft.MvvmLight.Messaging;
using SchoolSample.EntityModel;
namespace SchoolSample.Common
{
public class AppMessages
{
enum MessageTypes
{
RaiseError,
PleaseConfirm,
StatusUpdate,
CultureChange,
BeginEdit,
CancelEdit,
EndEdit,
CourseFilter,
InstructorFilter,
StudentFilter,
CourseDefaultFilter,
InstructorDefaultFilter,
StudentDefaultFilter
}
public static class RaiseErrorMessage
{
public static void Send(Exception ex)
{
Messenger.Default.Send(ex, MessageTypes.RaiseError);
}
public static void Register(object recipient, Action<Exception> action)
{
Messenger.Default.Register(recipient, MessageTypes.RaiseError, action);
}
}
public static class PleaseConfirmMessage
{
public static void Send(DialogMessage dialogMessage)
{
Messenger.Default.Send(dialogMessage, MessageTypes.PleaseConfirm);
}
public static void Register(object recipient, Action<DialogMessage> action)
{
Messenger.Default.Register(recipient, MessageTypes.PleaseConfirm, action);
}
}
public static class StatusUpdateMessage
{
public static void Send(DialogMessage dialogMessage)
{
Messenger.Default.Send(dialogMessage, MessageTypes.StatusUpdate);
}
public static void Register(object recipient, Action<DialogMessage> action)
{
Messenger.Default.Register(recipient, MessageTypes.StatusUpdate, action);
}
}
public static class CultureChangeMessage
{
public static void Send(string culture)
{
Messenger.Default.Send(culture, MessageTypes.CultureChange);
}
public static void Register(object recipient, Action<string> action)
{
Messenger.Default.Register(recipient, MessageTypes.CultureChange, action);
}
}
public static class BeginEditMessage
{
public static void Send(string screenName)
{
Messenger.Default.Send(screenName, MessageTypes.BeginEdit);
}
public static void Register(object recipient, Action<string> action)
{
Messenger.Default.Register(recipient, MessageTypes.BeginEdit, action);
}
}
public static class CancelEditMessage
{
public static void Send(string screenName)
{
Messenger.Default.Send(screenName, MessageTypes.CancelEdit);
}
public static void Register(object recipient, Action<string> action)
{
Messenger.Default.Register(recipient, MessageTypes.CancelEdit, action);
}
}
public static class EndEditMessage
{
public static void Send(string screenName)
{
Messenger.Default.Send(screenName, MessageTypes.EndEdit);
}
public static void Register(object recipient, Action<string> action)
{
Messenger.Default.Register(recipient, MessageTypes.EndEdit, action);
}
}
public static class CourseFilterMessage
{
public static void Send(NotificationMessageAction<ClientFilter<Course>> notification)
{
Messenger.Default.Send(notification, MessageTypes.CourseFilter);
}
public static void Register(object recipient, Action<NotificationMessageAction<ClientFilter<Course>>> action)
{
Messenger.Default.Register(recipient, MessageTypes.CourseFilter, action);
}
}
public static class InstructorFilterMessage
{
public static void Send(NotificationMessageAction<ClientFilter<Instructor>> notification)
{
Messenger.Default.Send(notification, MessageTypes.InstructorFilter);
}
public static void Register(object recipient, Action<NotificationMessageAction<ClientFilter<Instructor>>> action)
{
Messenger.Default.Register(recipient, MessageTypes.InstructorFilter, action);
}
}
public static class StudentFilterMessage
{
public static void Send(NotificationMessageAction<ClientFilter<Student>> notification)
{
Messenger.Default.Send(notification, MessageTypes.StudentFilter);
}
public static void Register(object recipient, Action<NotificationMessageAction<ClientFilter<Student>>> action)
{
Messenger.Default.Register(recipient, MessageTypes.StudentFilter, action);
}
}
public static class CourseDefaultFilterMessage
{
public static void Send(ClientFilter<Course> notification)
{
Messenger.Default.Send(notification, MessageTypes.CourseDefaultFilter);
}
public static void Register(object recipient, Action<ClientFilter<Course>> action)
{
Messenger.Default.Register(recipient, MessageTypes.CourseDefaultFilter, action);
}
}
public static class InstructorDefaultFilterMessage
{
public static void Send(ClientFilter<Instructor> notification)
{
Messenger.Default.Send(notification, MessageTypes.InstructorDefaultFilter);
}
public static void Register(object recipient, Action<ClientFilter<Instructor>> action)
{
Messenger.Default.Register(recipient, MessageTypes.InstructorDefaultFilter, action);
}
}
public static class StudentDefaultFilterMessage
{
public static void Send(ClientFilter<Student> notification)
{
Messenger.Default.Send(notification, MessageTypes.StudentDefaultFilter);
}
public static void Register(object recipient, Action<ClientFilter<Student>> action)
{
Messenger.Default.Register(recipient, MessageTypes.StudentDefaultFilter, action);
}
}
}
}