public static Task <WindowInjectionResult> RegisterOrShowOrActivate(this IModuleWindowManager manager, string regionName, IModule module, object parameter = null)
 {
     Verifier.VerifyManager(manager);
     Verifier.VerifyModule(module);
     if (manager.GetModule(regionName, module.Key) == null)
     {
         manager.Register(regionName, module);
     }
     return(ShowOrActivate(manager, regionName, module.Key, parameter));
 }
        public static Task <WindowInjectionResult> ShowOrActivate(this IModuleWindowManager manager, string regionName, string key, object parameter = null)
        {
            Verifier.VerifyManager(manager);
            if (manager.GetModule(regionName, key) == null)
            {
                ModuleInjectionException.ModuleMissing(regionName, key);
            }
            if (!manager.IsShown(regionName, key))
            {
                return(manager.Show(regionName, key, parameter));
            }
            var res = ((IModuleManagerImplementation)manager).GetWindowInjectionResult(regionName, key);

            manager.Activate(regionName, key);
            return(res);
        }