Exemple #1
0
        public override async void OnNavigatedTo(INavigationParameters parameters)
        {
            _loggerService.StartMethod();

            base.OnNavigatedTo(parameters);

            await _migrationService.MigrateAsync();

            var destination = Destination.HomePage;

            if (parameters.ContainsKey(SplashPage.DestinationKey))
            {
                _loggerService.Info($"Destination is set {destination}");
                destination = parameters.GetValue <Destination>(SplashPage.DestinationKey);
            }

            if (_userDataRepository.IsAllAgreed())
            {
                _loggerService.Info("User data exists");

                var termsUpdateInfo = await _termsUpdateService.GetTermsUpdateInfo();

                if (_termsUpdateService.IsUpdated(TermsType.TermsOfService, termsUpdateInfo))
                {
                    _loggerService.Info($"Transition to ReAgreeTermsOfServicePage");

                    var navigationParams = ReAgreeTermsOfServicePage.BuildNavigationParams(termsUpdateInfo, destination, parameters);
                    _ = await NavigationService.NavigateAsync("/" + nameof(ReAgreeTermsOfServicePage), navigationParams);
                }
                else if (_termsUpdateService.IsUpdated(TermsType.PrivacyPolicy, termsUpdateInfo))
                {
                    _loggerService.Info($"Transition to ReAgreePrivacyPolicyPage");

                    var navigationParams = ReAgreePrivacyPolicyPage.BuildNavigationParams(termsUpdateInfo.PrivacyPolicy, destination, parameters);
                    _ = await NavigationService.NavigateAsync("/" + nameof(ReAgreePrivacyPolicyPage), navigationParams);
                }
                else
                {
                    _loggerService.Info($"Transition to {destination}");
                    _ = await NavigationService.NavigateAsync(destination.ToPath(), parameters);
                }
            }
            else
            {
                _loggerService.Info("No user data exists");
                _loggerService.Info($"Transition to TutorialPage1");
                _ = await NavigationService.NavigateAsync("/" + nameof(TutorialPage1));
            }

            _loggerService.EndMethod();
        }
        public async Task <INavigationResult> NavigateNextAsync(bool isSetupLaterEventLog = false)
        {
            _loggerService.StartMethod();

            try
            {
                string name;
                INavigationParameters parameters;

                if (_userDataRepository.IsAllAgreed())
                {
                    _loggerService.Info("Is all agreed");

                    if (_termsUpdateService.IsUpdated(TermsType.TermsOfService, _termsUpdateInfoModel))
                    {
                        name       = $"/{nameof(ReAgreeTermsOfServicePage)}";
                        parameters = ReAgreeTermsOfServicePage.BuildNavigationParams(_termsUpdateInfoModel.TermsOfService);
                    }
                    else if (_termsUpdateService.IsUpdated(TermsType.PrivacyPolicy, _termsUpdateInfoModel))
                    {
                        name       = $"/{nameof(ReAgreePrivacyPolicyPage)}";
                        parameters = ReAgreePrivacyPolicyPage.BuildNavigationParams(_termsUpdateInfoModel.PrivacyPolicy);
                    }
                    else if (!isSetupLaterEventLog && _sendEventLogStateRepository.IsExistNotSetEventType())
                    {
                        name       = $"/{nameof(EventLogCooperationPage)}";
                        parameters = EventLogCooperationPage.BuildNavigationParams(EventLogCooperationPage.TransitionReason.Splash);
                    }
                    else
                    {
                        name       = Destination.ToPath();
                        parameters = DestinationPageParameters;
                    }
                }
                else
                {
                    name       = $"/{nameof(TutorialPage1)}";
                    parameters = null;
                }

                _loggerService.Info($"Transition to {name}");
                return(await _navigationService.NavigateAsync(name, parameters));
            }
            finally
            {
                _loggerService.EndMethod();
            }
        }