示例#1
0
        private async void MoreItemsRequest()
        {
            try
            {
                IsBusy              = true;
                HasErrors           = false;
                NoItems             = false;
                DataProviderRawData = string.Empty;
                Items.Clear();

                var items = await wordPressDataProvider.LoadMoreDataAsync();

                NoItems = !items.Any();

                foreach (var item in items)
                {
                    Items.Add(item);
                }

                var rawData = await rawDataProvider.LoadMoreDataAsync <RawSchema>();

                DataProviderRawData = rawData.FirstOrDefault()?.Raw;
            }
            catch (Exception ex)
            {
                DataProviderRawData += ex.Message;
                DataProviderRawData += ex.StackTrace;
                HasErrors            = true;
            }
            finally
            {
                IsBusy = false;
            }
        }
示例#2
0
        private async void GetMoreItems()
        {
            var items = await _wordPressDataProvider.LoadMoreDataAsync();

            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
示例#3
0
        public async Task LoadWordPressCategory_Sorting()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy  = "themes"
            };

            var dataProviderNoSorting          = new WordPressDataProvider();
            IEnumerable <WordPressSchema> data = await dataProviderNoSorting.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreData = await dataProviderNoSorting.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query          = "en.blog.wordpress.com",
                QueryType      = WordPressQueryType.Category,
                FilterBy       = "themes",
                OrderBy        = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable <WordPressSchema> sortedData = await dataProvider.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreSortedData = await dataProvider.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query          = "en.blog.wordpress.com",
                QueryType      = WordPressQueryType.Category,
                FilterBy       = "themes",
                OrderBy        = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Descending
            };

            var dataProviderDesc = new WordPressDataProvider();
            IEnumerable <WordPressSchema> sortedDescData = await dataProviderDesc.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreSortedDescData = await dataProviderDesc.LoadMoreDataAsync();


            Assert.AreNotEqual(data.FirstOrDefault().Title, sortedData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(moreData.FirstOrDefault().Title, moreSortedData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(sortedData.FirstOrDefault().Title, sortedDescData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (descending) is not working");
            Assert.AreNotEqual(moreSortedData.FirstOrDefault().Title, moreSortedDescData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (descending) is not working");
        }
示例#4
0
        public async Task LoadPaginationWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            await dataProvider.LoadDataAsync(config, 5);

            Assert.IsTrue(dataProvider.HasMoreItems);

            IEnumerable <WordPressSchema> data = await dataProvider.LoadMoreDataAsync();

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Any());
        }
示例#5
0
 public override async Task <IEnumerable <WordPressSchema> > GetNextPageAsync()
 {
     return(await _dataProvider.LoadMoreDataAsync());
 }
示例#6
0
        public async Task LoadWordPressTag_Sorting()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress"
            };
            var dataProviderNoSorting = new WordPressDataProvider();
            IEnumerable<WordPressSchema> data = await dataProviderNoSorting.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreData = await dataProviderNoSorting.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress",
                OrderBy = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable<WordPressSchema> sortedData = await dataProvider.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreSortedData = await dataProvider.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress",
                OrderBy = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Descending
            };

            var dataProviderDesc = new WordPressDataProvider();
            IEnumerable<WordPressSchema> sortedDescData = await dataProviderDesc.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreSortedDescData = await dataProviderDesc.LoadMoreDataAsync();


            Assert.AreNotEqual(data.FirstOrDefault().Title, sortedData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(moreData.FirstOrDefault().Title, moreSortedData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(sortedData.FirstOrDefault().Title, sortedDescData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (descending) is not working");
            Assert.AreNotEqual(moreSortedData.FirstOrDefault().Title, moreSortedDescData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (descending) is not working");
        }   
示例#7
0
        public async Task LoadMoreDataInvalidOperationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "apps"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync<InvalidOperationException>(async () => await dataProvider.LoadMoreDataAsync());
        }
示例#8
0
        public async Task LoadPaginationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            await dataProvider.LoadDataAsync(config, 5);

            Assert.IsTrue(dataProvider.HasMoreItems);

            IEnumerable<WordPressSchema> data = await dataProvider.LoadMoreDataAsync();

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Any());
        }
示例#9
0
        public async Task LoadMoreDataBeforeLoadDataWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync<InvalidOperationException>(async () => await dataProvider.LoadMoreDataAsync());
        }
示例#10
0
        public async Task LoadMoreDataInvalidOperationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy  = "apps"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }
示例#11
0
        public async Task LoadMoreDataBeforeLoadDataWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }