Esempio n. 1
0
        /// <summary>
        /// Appelé lorsque la navigation souhaite quitter ce VM.
        /// </summary>
        /// <returns>
        ///   <c>true</c> si la navigation est acceptée.
        /// </returns>
        public override Task <bool> OnNavigatingAway(IFrameNavigationToken token)
        {
            if (!CanChangeAndHasNoPendingChanges())
            {
                MessageDialogResult answer = this.AskNavigatingAwayValidationConfirmation(() => _navigationToken = token);
                return(Task.FromResult(answer == MessageDialogResult.No));
            }

            return(Task.FromResult(true));
        }
Esempio n. 2
0
        /// <summary>
        /// Appelé lorsque la navigation souhaite quitter ce VM.
        /// </summary>
        /// <returns>
        ///   <c>true</c> si la navigation est acceptée.
        /// </returns>
        public override async Task <bool> OnNavigatingAway(IFrameNavigationToken token)
        {
            if (Users.Any(i => i.ChangeTracker.State != ObjectState.Unchanged) ||
                (_usersPendingForDelete != null && _usersPendingForDelete.Any()))
            {
                var result = base.DialogFactory.GetDialogView <IMessageDialog>().Show(
                    LocalizationManager.GetString("VM_ApplicationMembers_Message_WantToSave"),
                    LocalizationManager.GetString("Common_Confirmation"),
                    MessageDialogButton.YesNoCancel,
                    MessageDialogImage.Question);

                switch (result)
                {
                case MessageDialogResult.Yes:

                    // Valider, sauvegarder, quitter
                    foreach (var user in this.Users)
                    {
                        user.ExternalValidation = null;
                    }
                    if (ValidateUsers())
                    {
                        await Save();

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }

                case MessageDialogResult.No:
                    // Quitter sans rien faire
                    return(true);

                default:
                    // Ne pas quitter
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Appelé lorsque la navigation souhaite quitter ce VM.
 /// </summary>
 /// <returns>
 ///   <c>true</c> si la navigation est acceptée.
 /// </returns>
 public override Task <bool> OnNavigatingAway(IFrameNavigationToken token) =>
 Task.FromResult(_currentViewModel.OnNavigatingAway());
Esempio n. 4
0
 /// <summary>
 /// Appelé lorsque la navigation souhaite quitter ce VM.
 /// </summary>
 /// <param name="token">Représente le jeton de navigation permettant d'effectuer une navigation asynchrone</param>
 /// <returns><c>true</c> si la navigation est acceptée.</returns>
 public virtual Task <bool> OnNavigatingAway(IFrameNavigationToken token)
 {
     return(Task.FromResult(true));
 }
Esempio n. 5
0
        /// <summary>
        /// Appelé lorsque la navigation souhaite quitter ce VM.
        /// </summary>
        /// <returns>
        ///   <c>true</c> si la navigation est acceptée.
        /// </returns>
        public override Task <bool> OnNavigatingAway(IFrameNavigationToken token)
        {
            _currentExtensionConfigurationViewModel?.OnNavigatingAway();

            return(Task.FromResult(true));
        }