/// <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>
        /// Behandelt eine eingehende Push Nachricht vom Typ MODERATOR_ADDED. Fügt den 
        /// betroffenen Moderator als Verantwortlichen zu dem angegebenen Kanal hinzu.
        /// </summary>
        /// <param name="msg">Die empfangene Push Nachricht.</param>
        /// <returns>Liefert true, wenn Behandlung erfolgreich, ansonsten false.</returns>
        private async Task<bool> handleModeratorAddedPushMsgAsync(PushMessage msg)
        {
            // Lese die Kanal-Id des betroffenen Kanals aus.
            int channelId = msg.Id1;

            // Lese die Moderator-Id des betroffenene Moderator aus.
            int moderatorId = msg.Id2;

            try
            {
                // Frage Moderatorendatensätze des Kanals ab.
                List<Moderator> moderators = await channelController.GetResponsibleModeratorsAsync(channelId);
                if (moderators != null)
                {
                    foreach (Moderator moderator in moderators)
                    {
                        if (moderator.Id == moderatorId)
                        {
                            ModeratorController moderatorController = new ModeratorController();
                            if (!moderatorController.IsModeratorStored(moderatorId))
                            {
                                Debug.WriteLine("handleModeratorAddedPushMsgAsync: Need to store moderator with id {0} first.", moderator.Id);
                                // Speichere den Moderator zunächst ab.
                                moderatorController.StoreModerator(moderator);
                            }

                            // Füge den Moderator dem Kanal hinzu.
                            channelController.AddModeratorToChannel(channelId, moderator);
                        }
                    }
                }
            }
            catch (ClientException ex)
            {
                // Keine weitere Fehlerbehandlung hier, da dies Operationen im Hintergrund ablaufen.
                Debug.WriteLine("handleModeratorAddedPushMsgAsync: Handling of Moderator_Added push message failed. Message is {0}.", ex.Message);
                return false;
            }

            return true;
        }