private Task <bool> SetCurrentModelAsync(MainContentViewModelBase viewModel) { if (CurrentModel == viewModel) { return(TaskConstants.BooleanFalse); } Task <bool> allowChangeTask = CurrentModel != null ? CurrentModel.OnContentChange() : TaskConstants.BooleanTrue; if (allowChangeTask.IsCompleted && allowChangeTask.Result) { CurrentModel = viewModel; } else { SetCurrentModelAsync(viewModel, allowChangeTask); } return(allowChangeTask); }