Example #1
0
        public static async Task <T> OpenAsyncQuery <T>(this IScreenOpener opener, IQuery <T> query, CancellationToken cancelToken = default(CancellationToken))
            where T : class, IScreenViewModel
        {
            var viewModel = await opener.Send(query, cancelToken).ConfigureAwait(false);

            await opener.OpenAsync(viewModel).ConfigureAwait(false);

            return(viewModel);
        }
Example #2
0
        public static async Task <T> OpenAsyncQueryCached <T>(this IScreenOpener opener, IQuery <T> query)
            where T : class, IScreenViewModel
        {
            var t = typeof(T);

            if (cached.ContainsKey(t))
            {
                var vm = cached[t];
                if (vm.IsOpen)
                {
                    await vm.Activate.ExecuteAsyncTask().ConfigureAwait(false);

                    return((T)vm);
                }
            }
            var viewModel = await opener.Send(query).ConfigureAwait(false);

            cached.Add(t, viewModel);
            await opener.OpenAsync(viewModel).ConfigureAwait(false);

            HandleClosing(viewModel, t);
            return(viewModel);
        }
Example #3
0
 public CheatImpl(IMediator mediator, IScreenOpener screenOpener, IPlatformProvider platformProvider,
     IExceptionHandler exceptionHandler, IMessageBus messageBus, IGameLockMonitor gameLockMonitor, IDialogManager dialogManager) {
     Mediator = mediator;
     ScreenOpener = screenOpener;
     PlatformProvider = platformProvider;
     MessageBus = messageBus;
     GameLockMonitor = gameLockMonitor;
     DialogManager = dialogManager;
     UiTaskHandler.SetExceptionHandler(exceptionHandler);
 }