public static async Task ActivateOrShowAsync(this IViewActivationService viewActivationService, IViewModel viewModel)
        {
            Argument.IsNotNull(() => viewActivationService);
            Argument.IsNotNull(() => viewModel);

            if (!viewActivationService.Activate(viewModel))
            {
                var dependencyResolver = viewActivationService.GetDependencyResolver();

                var uiVisualizerService = dependencyResolver.Resolve <IUIVisualizerService>();

                await uiVisualizerService.ShowAsync(viewModel);
            }
        }
        public static async Task ActivateOrShowAsync(this IViewActivationService viewActivationService, Type viewModelType)
        {
            Argument.IsNotNull(() => viewActivationService);
            Argument.IsNotNull(() => viewModelType);

            if (!viewActivationService.Activate(viewModelType))
            {
                var dependencyResolver = viewActivationService.GetDependencyResolver();

                var viewModelFactory    = dependencyResolver.Resolve <IViewModelFactory>();
                var uiVisualizerService = dependencyResolver.Resolve <IUIVisualizerService>();

                var vm = viewModelFactory.CreateViewModel(viewModelType, null, null);
                await uiVisualizerService.ShowAsync(vm);
            }
        }
 public static Task ActivateOrShowAsync <TViewModel>(this IViewActivationService viewActivationService)
     where TViewModel : IViewModel
 {
     return(viewActivationService.ActivateOrShowAsync(typeof(TViewModel)));
 }
 public static void ActivateOrShow <TViewModel>(this IViewActivationService viewActivationService)
     where TViewModel : IViewModel
 {
     viewActivationService.ActivateOrShow(typeof(TViewModel));
 }