예제 #1
0
 private async Task <IPresenter> BuildPresenterAsync(Type presenter)
 {
     return((IPresenter)await ActivationHelpers.CreateAndInitObjectAsync(new ActivationParams()
     {
         Type = presenter,
         Params = Unit.Default
     }));
 }
예제 #2
0
 private async Task DisposeTransitionAsync(Transition transition)
 {
     if (transition != null)
     {
         DisposePresenters(transition);
         await ActivationHelpers.DestroyObjectAsync(transition.ViewModel);
     }
 }
예제 #3
0
        private async Task <Transition> BuildViewModelAsync(ActivationParams activationParams)
        {
            var vm = await ActivationHelpers.CreateAndInitObjectAsync(activationParams);

            var transition = new Transition()
            {
                ViewModel = vm
            };

            return(transition);
        }
예제 #4
0
        private async Task ResumeRouterAsync(IRouter router, RouterConfig routerConfig, RouterState routerState, IObjectStateStore stateStore)
        {
            await ActivationHelpers.InitObjectAsync(router, routerConfig);

            try
            {
                if (routerState != null)
                {
                    await ActivationHelpers.ResumeObjectStateAsync(router, routerState);
                }
            }
            catch (Exception e)
            {
                this.Log().WarnException("Could not resume the router state.", e);
                await InvalidateStateAsync(stateStore);
            }
        }
예제 #5
0
        private static async Task SaveRouterStateAsync(IRouter router, IObjectStateStore stateStore)
        {
            var state = await ActivationHelpers.GetObjectStateAsync(router);

            await stateStore.SaveStateAsync(state);
        }
예제 #6
0
 public async Task SuspendApplication()
 {
     await ActivationHelpers.DestroyObjectAsync(Router);
 }