Example #1
0
        /// <summary>
        /// Cancels the editing of the data.
        /// </summary>
        Task <bool> MVVM.IViewModel.CancelViewModel()
        {
            return(Task.Factory.StartNew(() =>
            {
                if (IsClosed)
                {
                    return false;
                }

                var cancelingEventArgs = new CancelingEventArgs();
                _catelCanceling.SafeInvoke(this, cancelingEventArgs);

                if (cancelingEventArgs.Cancel)
                {
                    return false;
                }

                if (base.CanCancel)
                {
                    base.DoCancel();
                }

                _catelCanceled.SafeInvoke(this);

                return true;
            }));
        }
Example #2
0
        /// <summary>
        /// Handles the Canceling event of the parent ViewModel.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CancelingEventArgs"/> instance containing the event data.</param>
        private async Task OnParentViewModelCancelingAsync(object sender, CancelingEventArgs e)
        {
            // The parent view model is canceled, cancel our view model as well
            if (ViewModel != null)
            {
                if (ReferenceEquals(sender, ViewModel))
                {
                    Log.Warning("Parent view model '{0}' is exactly the same instance as the current view model, ignore Canceling event", sender.GetType().FullName);
                    return;
                }

                if (e.Cancel)
                {
                    Log.Info("Parent view model '{0}' is canceling, but canceling is canceled by another view model, canceling of view model '{1}' will not continue", _parentViewModel.GetType(), ViewModel.GetType());
                    return;
                }

                Log.Info("Parent view model '{0}' is canceled, cancelling view model '{1}' as well", _parentViewModel.GetType(), ViewModel.GetType());

                if (!ViewModel.IsClosed)
                {
                    e.Cancel = !await ViewModel.CancelViewModelAsync();
                }
            }
        }
Example #3
0
        /// <summary>
        /// Cancels the editing of the data.
        /// </summary>
        bool MVVM.IViewModel.CancelViewModel()
        {
            if (IsClosed)
            {
                return(false);
            }

            var cancelingEventArgs = new CancelingEventArgs();

            _catelCanceling.SafeInvoke(this, cancelingEventArgs);

            if (cancelingEventArgs.Cancel)
            {
                return(false);
            }

            if (base.CanCancel)
            {
                base.DoCancel();
            }

            _catelCanceled.SafeInvoke(this);

            return(true);
        }
Example #4
0
 private async Task ViewModelOnCancelingAsync(object sender, CancelingEventArgs e)
 {
     _closingViewModel       = new ProgressWindowViewModel();
     _closingViewModel.Title = "Cancelling...";
     _closingViewModel.SetOwnerWindow(this);
     _visualizerService.ShowDialogAsync(_closingViewModel);
 }
Example #5
0
        private static Task OnViewModelCancelingAsync(object sender, CancelingEventArgs e)
        {
            if (!AuditingManager.IsAuditingEnabled)
            {
                return(TaskHelper.Completed);
            }

            AuditingManager.OnViewModelCanceling((IViewModel)sender);

            return(TaskHelper.Completed);
        }
Example #6
0
        private static Task OnViewModelCancelingAsync(object sender, CancelingEventArgs e)
        {
            if (!AuditingManager.IsAuditingEnabled)
            {
                return TaskHelper.Completed;
            }

            AuditingManager.OnViewModelCanceling((IViewModel)sender);

            return TaskHelper.Completed;
        }
Example #7
0
        /// <summary>
        /// Handles the Canceling event of the parent ViewModel.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="CancelingEventArgs"/> instance containing the event data.</param>
        private async Task OnParentViewModelCancelingAsync(object sender, CancelingEventArgs e)
        {
            // The parent view model is canceled, cancel our view model as well
            if (ViewModel != null)
            {
                if (ReferenceEquals(sender, ViewModel))
                {
                    Log.Warning("Parent view model '{0}' is exactly the same instance as the current view model, ignore Canceling event", sender.GetType().FullName);
                    return;
                }

                if (e.Cancel)
                {
                    Log.Info("Parent view model '{0}' is canceling, but canceling is canceled by another view model, canceling of view model '{1}' will not continue", _parentViewModel.GetType(), ViewModel.GetType());
                    return;
                }

                Log.Info("Parent view model '{0}' is canceled, cancelling view model '{1}' as well", _parentViewModel.GetType(), ViewModel.GetType());

                if (!ViewModel.IsClosed)
                {
                    e.Cancel = !await ViewModel.CancelViewModelAsync();
                }
            }
        }
Example #8
0
 private static void OnViewModelCanceling(object sender, CancelingEventArgs e)
 {
     AuditingManager.OnViewModelCanceling((IViewModel)sender);
 }
Example #9
0
 private static void OnViewModelCanceling(object sender, CancelingEventArgs e)
 {
     AuditingManager.OnViewModelCanceling((IViewModel)sender);
 }