/// <summary>
 /// Erzeugt eine Instanz der Klasse ChannelEnumerationBaseViewModel.
 /// </summary>
 /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
 /// <param name="errorMapper">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
 protected ChannelEnumerationBaseViewModel(INavigationService navService, IErrorMapper errorMapper)
     : base (navService, errorMapper)
 {
     channelController = new ChannelController(this);
     currentChannels = new Dictionary<int, Channel>();
 }
        /// <summary>
        /// Erzeugt eine Instanz der Klasse AddAndEditReminderViewModel.
        /// </summary>
        /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
        /// <param name="errorMapper">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
        public AddAndEditReminderViewModel(INavigationService navService, IErrorMapper errorMapper)
            : base(navService, errorMapper)
        {
            channelController = new ChannelController(this);

            // Erzeuge Befehle.
            CreateReminderCommand = new AsyncRelayCommand(param => executeCreateReminderCommand());
            EditReminderCommand = new AsyncRelayCommand(param => executeEditReminderCommand(), param => canEditReminder());
        }
        /// <summary>
        /// Erzeugt eine Instanz der Klasse AddAndEditChannelViewModel.
        /// </summary>
        /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
        /// <param name="errorMapper">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
        public AddAndEditChannelViewModel(INavigationService navService, IErrorMapper errorMapper)
            : base(navService, errorMapper)
        {
            channelController = new ChannelController(this);

            // Lege Commands an.
            AddChannelCommand = new AsyncRelayCommand(param => executeAddChannelCommand());
            EditChannelCommand = new AsyncRelayCommand(param => executeEditChannelCommand(), param => canEditChannel());
        }
        /// <summary>
        /// Erzeuge eine Instanz der Klasse SearchChannelsViewModel.
        /// </summary>
        /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
        /// <param name="errorReporter">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
        public SearchChannelsViewModel(INavigationService navService, IErrorMapper errorReporter)
            : base(navService, errorReporter)
        {
            channelController = new ChannelController();
            allChannels = new Dictionary<int, Channel>();

            // Führe Online Update bei nächster Aktualisierung aus.
            performOnlineUpdate = true;

            // Initialisiere Befehle.
            StartChannelSearchCommand = new AsyncRelayCommand(
                param => executeChannelSearchAsync(),
                param => canExecuteSearch());
            ReorderChannelsCommand = new AsyncRelayCommand(
                param => executeReorderChannelsCommandAsync());
            ChannelSelectedCommand = new RelayCommand(
                param => executeChannelSelected(param),
                param => canSelectChannel());
            SynchronizeChannelsCommand = new AsyncRelayCommand(
                param => executeSynchronizeChannelsCommand(),
                param => canSynchronizeChannels());
        }
        /// <summary>
        /// Erzeugt eine Instanz der Klasse ReminderDetailsViewModel.
        /// </summary>
        /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
        /// <param name="errorMapper">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
        public ReminderDetailsViewModel(INavigationService navService, IErrorMapper errorMapper)
            : base(navService, errorMapper)
        {
            channelController = new ChannelController();
            moderatorController = new ModeratorController();

            // Befehle anlegen.
            SwitchToEditReminderDialogCommand = new RelayCommand(
                param => executeSwitchToEditReminderCommand(),
                param => canSwitchToEditReminderCommand());
            DeleteReminderCommand = new AsyncRelayCommand(
                param => executeDeleteReminderCommand(),
                param => canDeleteReminder());
            ActivateReminderCommand = new AsyncRelayCommand(
                param => executeActivateReminderCommand(),
                param => canActivateReminder());
            DeactivateReminderCommand = new AsyncRelayCommand(
                param => executeDeactivateReminderCommand(),
                param => canDeactivateReminder());
            SynchronizeReminderCommand = new AsyncRelayCommand(
                param => executeSynchronizeReminderCommand(),
                param => canSynchronizeReminder());
        }
        /// <summary>
        /// Erzeugt eine Instanz der Klasse AddAnnouncementViewModel
        /// </summary>
        /// <param name="navService"></param>
        /// <param name="errorMapper"></param>
        public AddAnnouncementViewModel(INavigationService navService, IErrorMapper errorMapper)
            : base(navService, errorMapper)
        {
            channelController = new ChannelController(this);

            // Initialisiere Parameter.
            IsMessagePriorityNormalSelected = true;
            IsMessagePriorityHighSelected = false;

            // Befehle anlegen.
            CreateNewAnnouncementCommand = new AsyncRelayCommand(param => executeCreateNewAnnouncementCommand());
        }
        /// <summary>
        /// Erzeugt eine Instanz der Klasse ChannelDetailsBaseViewModel.
        /// </summary>
        /// <param name="navService">Eine Referenz auf den Navigationsdienst der Anwendung.</param>
        /// <param name="errorMapper">Eine Referenz auf den Fehlerdienst der Anwendung.</param>
        protected ChannelDetailsBaseViewModel(INavigationService navService, IErrorMapper errorMapper)
            : base(navService, errorMapper)
        {
            channelController = new ChannelController(this);

            // Lade Anwendungseinstellungen und passe View Parameter entsprechend an.
            AppSettings appSettings = channelController.GetApplicationSettings();
            if (appSettings.AnnouncementOrderSetting == OrderOption.ASCENDING)
            {
                ListRotationAngle = 0;
                ShowScrollBar = true;
            }
            else if (appSettings.AnnouncementOrderSetting == OrderOption.DESCENDING)
            {
                ListRotationAngle = 180;
                ShowScrollBar = false;
            }
        }
 /// <summary>
 /// Erzeugt eine Instanz der Klasse PushNotificationController.
 /// </summary>
 public PushNotificationController()
     : base()
 {
     channelController = new ChannelController();
     groupController = new GroupController();
 }