예제 #1
0
        public void OpenWebViewCommandTests()
        {
            var reAgreeTermsOfServicePageViewModel = CreateViewModel();
            var termsOfServiceDetail = new TermsUpdateInfoModel.Detail {
                Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01)
            };

            var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail);

            reAgreeTermsOfServicePageViewModel.Initialize(param);

            var               actualCalls      = 0;
            string            actualUri        = default;
            BrowserLaunchMode actualLaunchMode = default;

            reAgreeTermsOfServicePageViewModel.BrowserOpenAsync = (uri, launchMode) =>
            {
                actualCalls++;
                actualUri        = uri;
                actualLaunchMode = launchMode;
                return(Task.CompletedTask);
            };

            reAgreeTermsOfServicePageViewModel.OpenWebView.Execute(null);

            Assert.Equal(1, actualCalls);
            Assert.Equal(AppResources.UrlTermOfUse, actualUri);
            Assert.Equal(BrowserLaunchMode.SystemPreferred, actualLaunchMode);
        }
예제 #2
0
        public bool IsUpdated(TermsType termsType, TermsUpdateInfoModel termsUpdateInfo)
        {
            loggerService.StartMethod();

            TermsUpdateInfoModel.Detail info = termsType switch
            {
                TermsType.TermsOfService => termsUpdateInfo.TermsOfService,
                TermsType.PrivacyPolicy => termsUpdateInfo.PrivacyPolicy,
                _ => throw new NotSupportedException()
            };

            if (info == null)
            {
                loggerService.EndMethod();
                return(false);
            }

            var updateDatetime = info.UpdateDateTimeUtc;

            DateTime lastUpdateDate = userDataRepository.GetLastUpdateDate(termsType);

            loggerService.Info($"termsType: {termsType}, lastUpdateDate: {lastUpdateDate}, updateDatetimeUtc: {updateDatetime}");
            loggerService.EndMethod();

            return(lastUpdateDate < updateDatetime);
        }
    }
        public static INavigationParameters BuildNavigationParams(
            TermsUpdateInfoModel.Detail termsOfServiceDetail)
        {
            var param = new NavigationParameters();

            param.Add(TermsOfServiceDetailKey, termsOfServiceDetail);
            return(param);
        }
        public static INavigationParameters BuildNavigationParams(
            TermsUpdateInfoModel.Detail privatcyPolicyDetail
            )
        {
            var param = new NavigationParameters();

            param.Add(PrivacyPolicyDetailKey, privatcyPolicyDetail);
            return(param);
        }
예제 #5
0
        public override void Initialize(INavigationParameters parameters)
        {
            loggerService.StartMethod();

            base.Initialize(parameters);
            TermsUpdateInfoModel.Detail updateInfo = (TermsUpdateInfoModel.Detail)parameters["updatePrivacyPolicyInfo"];
            UpdateDateTime = updateInfo.UpdateDateTime;
            UpdateText     = updateInfo.Text;

            loggerService.EndMethod();
        }
예제 #6
0
        public void InitializeTests()
        {
            var reAgreeTermsOfServicePageViewModel = CreateViewModel();
            var termsOfServiceDetail = new TermsUpdateInfoModel.Detail {
                Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01)
            };

            var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail);

            reAgreeTermsOfServicePageViewModel.Initialize(param);

            Assert.Equal(termsOfServiceDetail.Text, reAgreeTermsOfServicePageViewModel.UpdateText);
        }
        public override void Initialize(INavigationParameters parameters)
        {
            _loggerService.StartMethod();

            base.Initialize(parameters);
            TermsUpdateInfoModel.Detail updateInfo = (TermsUpdateInfoModel.Detail)parameters[ReAgreePrivacyPolicyPage.UpdatePrivacyPolicyInfoKey];
            UpdateDateTimeUtc = updateInfo.UpdateDateTimeUtc;
            UpdateText        = updateInfo.Text;

            _navigationParameters = parameters;

            _loggerService.EndMethod();
        }
예제 #8
0
        public void InitializeTests()
        {
            var reAgreePrivacyPolicyPageViewModel = CreateViewModel();

            var privacyPolicyDetail = new TermsUpdateInfoModel.Detail {
                Text = "test", UpdateDateTimeJst = new DateTime(2020, 11, 02)
            };

            var param = ReAgreePrivacyPolicyPage.BuildNavigationParams(privacyPolicyDetail);

            reAgreePrivacyPolicyPageViewModel.Initialize(param);

            Assert.Equal(privacyPolicyDetail.Text, reAgreePrivacyPolicyPageViewModel.UpdateText);
        }
예제 #9
0
        public static INavigationParameters BuildNavigationParams(
            TermsUpdateInfoModel.Detail privacyPolicyInfo,
            Destination destination,
            INavigationParameters?baseParam = null
            )
        {
            var param = new NavigationParameters();

            param.CopyFrom(baseParam);

            param.Add(UpdatePrivacyPolicyInfoKey, privacyPolicyInfo);
            param.Add(DestinationKey, destination);

            return(param);
        }
예제 #10
0
        public void InitializeTests()
        {
            var reAgreePrivacyPolicyPageViewModel = CreateViewModel();
            var updateInfo = new TermsUpdateInfoModel.Detail {
                Text = "test", UpdateDateTime = new DateTime(2020, 11, 02)
            };
            var param = new NavigationParameters
            {
                { "updatePrivacyPolicyInfo", updateInfo }
            };

            reAgreePrivacyPolicyPageViewModel.Initialize(param);

            Assert.Equal(updateInfo.Text, reAgreePrivacyPolicyPageViewModel.UpdateText);
        }
예제 #11
0
        public void OnClickReAgreeCommandTests()
        {
            var reAgreeTermsOfServicePageViewModel = CreateViewModel();
            var termsOfServiceDetail = new TermsUpdateInfoModel.Detail {
                Text = "利用規約テキスト", UpdateDateTimeJst = new DateTime(2020, 11, 01)
            };

            var param = ReAgreeTermsOfServicePage.BuildNavigationParams(termsOfServiceDetail);

            reAgreeTermsOfServicePageViewModel.Initialize(param);

            mockUserDataRepository.Setup(x => x.SaveLastUpdateDate(TermsType.TermsOfService, termsOfServiceDetail.UpdateDateTimeUtc));
            reAgreeTermsOfServicePageViewModel.OnClickReAgreeCommand.Execute(null);

            mockSplashNavigationService.Verify(x => x.NavigateNextAsync(false), Times.Once());
        }
예제 #12
0
        public void OnClickReAgreeCommandTests()
        {
            var reAgreePrivacyPolicyPageViewModel = CreateViewModel();
            var updateInfo = new TermsUpdateInfoModel.Detail {
                Text = "", UpdateDateTime = DateTime.Now
            };
            var param = new NavigationParameters
            {
                { "updatePrivacyPolicyInfo", updateInfo }
            };

            reAgreePrivacyPolicyPageViewModel.Initialize(param);

            mockTermsUpdateService.Setup(x => x.SaveLastUpdateDate(TermsType.PrivacyPolicy, updateInfo.UpdateDateTime));
            reAgreePrivacyPolicyPageViewModel.OnClickReAgreeCommand.Execute(null);

            mockNavigationService.Verify(x => x.NavigateAsync("/" + nameof(MenuPage) + "/" + nameof(NavigationPage) + "/" + nameof(HomePage)), Times.Once());
        }
예제 #13
0
        public bool IsReAgree(TermsType termsType, TermsUpdateInfoModel termsUpdateInfo)
        {
            loggerService.StartMethod();

            TermsUpdateInfoModel.Detail info = null;
            string key = null;

            switch (termsType)
            {
            case TermsType.TermsOfService:
                info = termsUpdateInfo.TermsOfService;
                key  = PreferenceKey.TermsOfServiceLastUpdateDateTime;
                break;

            case TermsType.PrivacyPolicy:
                info = termsUpdateInfo.PrivacyPolicy;
                key  = PreferenceKey.PrivacyPolicyLastUpdateDateTime;
                break;
            }

            if (info == null)
            {
                loggerService.EndMethod();
                return(false);
            }

            var lastUpdateDate = new DateTime();

            if (preferencesService.ContainsKey(key))
            {
                lastUpdateDate = preferencesService.GetValue(key, lastUpdateDate);
            }

            loggerService.Info($"termsType: {termsType}, lastUpdateDate: {lastUpdateDate}, info.UpdateDateTime: {info.UpdateDateTime}");
            loggerService.EndMethod();

            return(lastUpdateDate < info.UpdateDateTime);
        }
예제 #14
0
        public bool IsReAgree(TermsType privacyType, TermsUpdateInfoModel termsUpdateInfo)
        {
            loggerService.StartMethod();

            TermsUpdateInfoModel.Detail info = null;
            string key = null;

            switch (privacyType)
            {
            case TermsType.TermsOfService:
                info = termsUpdateInfo.TermsOfService;
                key  = TermsOfServiceLastUpdateDateKey;
                break;

            case TermsType.PrivacyPolicy:
                info = termsUpdateInfo.PrivacyPolicy;
                key  = PrivacyPolicyLastUpdateDateKey;
                break;
            }

            if (info == null)
            {
                loggerService.EndMethod();
                return(false);
            }

            var lastUpdateDate = new DateTime();

            if (applicationPropertyService.ContainsKey(key))
            {
                lastUpdateDate = (DateTime)applicationPropertyService.GetProperties(key);
            }

            loggerService.Info($"privacyType: {privacyType}, lastUpdateDate: {lastUpdateDate}, info.UpdateDateTime: {info.UpdateDateTime}");
            loggerService.EndMethod();

            return(lastUpdateDate < info.UpdateDateTime);
        }