public void EnterModelContext(NavigationContext oldContext, NavigationContext newContext)
        {
            // clear the PIN code text box, necessary when entering the plugin
            PinCode = string.Empty;

            string authFilePath        = Path.Combine(_mediaPortalServices.GetTraktUserHomePath(), FileName.Authorization.Value);
            bool   savedAuthFileExists = _fileOperations.FileExists(authFilePath);

            if (!savedAuthFileExists)
            {
                TestStatus       = "[Trakt.NotAuthorized]";
                IsUserAuthorized = false;
            }
            else
            {
                string savedAuthorization         = _fileOperations.FileReadAllText(authFilePath);
                ITraktAuthorization savedAuthFile = TraktSerializationService.DeserializeAsync <ITraktAuthorization>(savedAuthorization).Result;
                if (savedAuthFile.IsRefreshPossible)
                {
                    TestStatus       = "[Trakt.AlreadyAuthorized]";
                    IsUserAuthorized = true;
                }
                else
                {
                    TestStatus       = "[Trakt.SavedAuthIsNotValid]";
                    IsUserAuthorized = false;
                }
            }
        }
        public async Task Test_TraktSerializationService_DeserializeAsync_ITraktAuthorization_ArgumentExceptions()
        {
            Func <Task <ITraktAuthorization> > act = () => TraktSerializationService.DeserializeAsync(null);
            await act.Should().ThrowAsync <ArgumentNullException>();

            act = () => TraktSerializationService.DeserializeAsync(string.Empty);
            await act.Should().ThrowAsync <ArgumentException>();
        }
        public async Task Test_TraktSerializationService_DeserializeAsync_ITraktAuthorization_1()
        {
            ITraktAuthorization authorization = await TraktSerializationService.DeserializeAsync(Authorization1Json);

            authorization.Should().NotBeNull();
            authorization.AccessToken.Should().Be(TestConstants.MOCK_ACCESS_TOKEN);
            authorization.RefreshToken.Should().BeNull();
            authorization.Scope.Should().Be(TraktAccessScope.Public);
            authorization.TokenType.Should().Be(TraktAccessTokenType.Bearer);
            authorization.ExpiresInSeconds.Should().Be(7776000U);
            authorization.IgnoreExpiration.Should().BeTrue();
            authorization.CreatedAtTimestamp.Should().Be(Authorization1.CreatedAtTimestamp);
        }
        public async Task Test_TraktSerializationService_DeserializeAsync_ITraktAuthorization_8()
        {
            ITraktAuthorization authorization = await TraktSerializationService.DeserializeAsync(Authorization8Json);

            authorization.Should().NotBeNull();
            authorization.AccessToken.Should().Be(TestConstants.MOCK_ACCESS_TOKEN);
            authorization.RefreshToken.Should().Be(TestConstants.MOCK_REFRESH_TOKEN);
            authorization.Scope.Should().Be(TraktAccessScope.Public);
            authorization.TokenType.Should().Be(TraktAccessTokenType.Bearer);
            authorization.ExpiresInSeconds.Should().Be(EXPIRES_IN_SECONDS);
            authorization.IgnoreExpiration.Should().BeFalse();
            authorization.CreatedAtTimestamp.Should().Be(s_createdAtTimestamp);
        }
        private void ValidateAuthorization(ITraktClient _traktClient, IFileOperations _fileOperations)
        {
            if (!_traktClient.TraktAuthorization.IsValid)
            {
                string authFilePath           = Path.Combine(HomeUserPath, FileName.Authorization.Value);
                string savedAuthorization     = _fileOperations.FileReadAllText(authFilePath);
                ITraktAuthorization savedAuth = TraktSerializationService.DeserializeAsync <ITraktAuthorization>(savedAuthorization).Result;

                if (!savedAuth.IsRefreshPossible)
                {
                    throw new Exception("Saved authorization is not valid.");
                }

                ITraktAuthorization refreshedAuth = _traktClient.RefreshAuthorization(savedAuth.RefreshToken);
                string serializedAuth             = TraktSerializationService.SerializeAsync(refreshedAuth).Result;
                _fileOperations.FileWriteAllText(authFilePath, serializedAuth, Encoding.UTF8);
            }
        }
Beispiel #6
0
        private ITraktSyncLastActivities SavedLastSyncActivities()
        {
            string traktUserHomePath           = _mediaPortalServices.GetTraktUserHomePath();
            string savedSyncActivitiesFilePath = Path.Combine(traktUserHomePath, FileName.LastActivity.Value);

            if (!_fileOperations.FileExists(savedSyncActivitiesFilePath))
            {
                return(new TraktSyncLastActivities
                {
                    Movies = new TraktSyncMoviesLastActivities(),
                    Shows = new TraktSyncShowsLastActivities(),
                    Episodes = new TraktSyncEpisodesLastActivities()
                });
            }
            string savedSyncActivitiesJson = _fileOperations.FileReadAllText(savedSyncActivitiesFilePath);

            return(TraktSerializationService.DeserializeAsync <ITraktSyncLastActivities>(savedSyncActivitiesJson).Result);
        }