예제 #1
0
        protected override async void NavigateToFirstViewModel(object hint = null)
        {
            onboardingStorage.SetFirstOpened(timeService.CurrentDateTime);

            if (accessRestrictionStorage.IsApiOutdated() || accessRestrictionStorage.IsClientOutdated())
            {
                await navigationService.Navigate <OnboardingViewModel>();

                await navigationService.Navigate <OutdatedAppViewModel>();

                return;
            }

            var dataSource = loginManager.GetDataSourceIfLoggedIn();

            if (dataSource == null)
            {
                await navigationService.Navigate <TFirstViewModelWhenNotLoggedIn>();

                return;
            }

            var user = await dataSource.User.Current.FirstAsync();

            if (accessRestrictionStorage.IsUnauthorized(user.ApiToken))
            {
                await navigationService.Navigate <TokenResetViewModel>();

                return;
            }

            var _ = dataSource.StartSyncing();

            await navigationService.Navigate <MainViewModel>();
        }
예제 #2
0
        public async void Start(object hint = null)
        {
            Mvx.RegisterSingleton(loginManager);

            if (accessRestrictionStorage.IsApiOutdated() || accessRestrictionStorage.IsClientOutdated())
            {
                await navigationService.Navigate <OnboardingViewModel>();

                await navigationService.Navigate <OutdatedAppViewModel>();

                return;
            }

            var dataSource = loginManager.GetDataSourceIfLoggedIn();

            if (dataSource == null)
            {
                await navigationService.Navigate <OnboardingViewModel>();

                return;
            }

            var user = await dataSource.User.Current;

            if (accessRestrictionStorage.IsUnauthorized(user.ApiToken))
            {
                await navigationService.Navigate <TokenResetViewModel>();

                return;
            }

            var _ = dataSource.StartSyncing();

            await navigationService.Navigate <MainViewModel>();
        }
예제 #3
0
파일: App.cs 프로젝트: FinHorsley/mobileapp
        protected override async void NavigateToFirstViewModel(object hint = null)
        {
            onboardingStorage.SetFirstOpened(timeService.CurrentDateTime);

            if (accessRestrictionStorage.IsApiOutdated() || accessRestrictionStorage.IsClientOutdated())
            {
                await navigationService.Navigate <OutdatedAppViewModel>();

                return;
            }

            if (!userAccessManager.TryInitializingAccessToUserData(out var syncManager, out var interactorFactory))
            {
                await navigationService.Navigate <TFirstViewModelWhenNotLoggedIn>();

                return;
            }

            var user = await interactorFactory.GetCurrentUser().Execute();

            if (accessRestrictionStorage.IsUnauthorized(user.ApiToken))
            {
                await navigationService.Navigate <TokenResetViewModel>();

                return;
            }

            syncManager.ForceFullSync().Subscribe();

            await navigationService.Navigate <MainTabBarViewModel>();
        }