private async void OnDelete(CustomerFormViewModel viewModel) { if (viewModel == null) { return; } if (await DialogController.Instance.ShowWarningMessageAsync( $"Do you wish to delete item '{viewModel.Id}'?") == MessageDialogResult.Affirmative) { var repo = _repositoryFactory.Create <Customer>(); repo.Delete(viewModel.Id); Refresh(); } }
private void SetNavigationRestriction(CustomerFormViewModel viewModel) { EventHandler <object> navigating = null; navigating = async(sender, e) => { var isWaiting = false; if (viewModel.IsDirty && (viewModel.Id != 0 || viewModel.IsInitialized)) { isWaiting = await DialogController.Instance.ShowWarningMessageAsync( "The form has not been saved. Do you wish to continue?") == MessageDialogResult.Negative; _navigator.SetNavigatingResponse(isWaiting); } _navigator.SetIsWaitingOnNavigatingResponse(isWaiting); }; EventHandler <object> navigated = null; navigated = (sender, e) => { if (e.ToString().Equals(typeof(CustomerFormViewModel).FullName)) { _navigator.SetIsWaitingOnNavigatingResponse(true); } else { _navigator.Navigating -= navigating; _navigator.Navitgated -= navigated; } }; _navigator.Navigating += navigating; _navigator.Navitgated += navigated; }