Пример #1
0
        public async void GetItems()
        {
            string          flickrQueryParam = "Abstract";
            FlickrQueryType queryType        = FlickrQueryType.Tags;
            int             maxRecordsParam  = 12;
            string          orderBy          = "Published";
            SortDirection   sortDirection    = SortDirection.Descending;

            _flickrDataProvider = new FlickrDataProvider();
            this.Items          = new ObservableCollection <object>();

            var config = new FlickrDataConfig
            {
                Query         = flickrQueryParam,
                QueryType     = queryType,
                OrderBy       = orderBy,
                SortDirection = sortDirection
            };

            var items = await _flickrDataProvider.LoadDataAsync(config, maxRecordsParam);

            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
Пример #2
0
        public override async Task <IEnumerable <FlickrSchema> > GetDataAsync(SchemaBase connectedItem = null)
        {
            var config = new FlickrDataConfig
            {
                QueryType = FlickrQueryType.Id,
                Query     = @"145038218@N02",
            };

            return(await _dataProvider.LoadDataAsync(config, MaxRecords));
        }
Пример #3
0
        public async Task LoadMoreDataInvalidOperationFlickrUser()
        {
            var config = new FlickrDataConfig
            {
                Query     = "100292344@N05",
                QueryType = FlickrQueryType.Id
            };

            var dataProvider = new FlickrDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }
Пример #4
0
        public async Task LoadMoreDataInvalidOperationFlickrTags()
        {
            var config = new FlickrDataConfig
            {
                Query     = "windowsappstudio",
                QueryType = FlickrQueryType.Tags
            };

            var dataProvider = new FlickrDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }
Пример #5
0
        public async Task TestMaxRecordsTags_Min()
        {
            int maxRecords = 1;
            var config     = new FlickrDataConfig
            {
                Query     = "windowsappstudio",
                QueryType = FlickrQueryType.Tags
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.AreEqual(maxRecords, data.Count());
        }
Пример #6
0
        public async Task TestMaxRecordsUser_Min()
        {
            int maxRecords = 1;
            var config     = new FlickrDataConfig
            {
                Query     = "100292344@N05",
                QueryType = FlickrQueryType.Id
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.AreEqual(maxRecords, data.Count());
        }
Пример #7
0
        public async Task TestNullQueryConfig()
        {
            var config = new FlickrDataConfig
            {
                Query     = null,
                QueryType = FlickrQueryType.Tags
            };

            var dataProvider = new FlickrDataProvider();

            ConfigParameterNullException exception = await ExceptionsAssert.ThrowsAsync <ConfigParameterNullException>(async() => await dataProvider.LoadDataAsync(config));

            Assert.IsTrue(exception.Message.Contains("Query"));
        }
Пример #8
0
        public async Task LoadFlickr_OrderBy_InvalidProperty()
        {
            var config = new FlickrDataConfig
            {
                Query     = "100292344@N05",
                QueryType = FlickrQueryType.Id,
                OrderBy   = "InvalidProperty"
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config, 5);

            data = await dataProvider.LoadMoreDataAsync();
        }
Пример #9
0
        public async Task LoadFlickrTags()
        {
            var config = new FlickrDataConfig
            {
                Query     = "windowsappstudio",
                QueryType = FlickrQueryType.Tags
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config);

            Assert.IsNotNull(data);
            Assert.AreNotEqual(data.Count(), 0);
        }
Пример #10
0
        public async Task LoadFlickrUser()
        {
            var config = new FlickrDataConfig
            {
                Query     = "100292344@N05",
                QueryType = FlickrQueryType.Id
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config);

            Assert.IsNotNull(data);
            Assert.AreNotEqual(data.Count(), 0);
        }
Пример #11
0
        public async Task LoadPaginationFlickrUser()
        {
            var config = new FlickrDataConfig
            {
                Query     = "100292344@N05",
                QueryType = FlickrQueryType.Id
            };

            var dataProvider = new FlickrDataProvider();
            await dataProvider.LoadDataAsync(config, 2);

            Assert.IsTrue(dataProvider.HasMoreItems);

            IEnumerable <FlickrSchema> result = await dataProvider.LoadMoreDataAsync();

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Any());
        }
Пример #12
0
        private async void Request()
        {
            try
            {
                IsBusy              = true;
                HasErrors           = false;
                NoItems             = false;
                DataProviderRawData = string.Empty;
                Items.Clear();

                var config = new FlickrDataConfig
                {
                    Query          = FlickrQueryParam,
                    QueryType      = FlickrQueryTypeSelectedItem,
                    OrderBy        = OrderBy != FlickrSampleOrderBy.None? OrderBy.ToString():string.Empty,
                    OrderDirection = SortDirection
                };

                var items = await flickrDataProvider.LoadDataAsync(config, MaxRecordsParam);

                NoItems = !items.Any();

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

                var rawParser = new RawParser();
                var rawData   = await rawDataProvider.LoadDataAsync(config, MaxRecordsParam, rawParser);

                DataProviderRawData = rawData.FirstOrDefault()?.Raw;
            }
            catch (Exception ex)
            {
                DataProviderRawData += ex.Message;
                DataProviderRawData += ex.StackTrace;
                HasErrors            = true;
            }
            finally
            {
                IsBusy = false;
            }
        }
Пример #13
0
        public async Task LoadFlickrUser_OrderByTitle()
        {
            var config = new FlickrDataConfig
            {
                Query          = "100292344@N05",
                QueryType      = FlickrQueryType.Id,
                OrderBy        = nameof(FlickrSchema.Title),
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config, 5);

            Assert.AreEqual(data.OrderBy(x => x.Title).Select(x => x.Title).FirstOrDefault(), data.ToList()[0].Title, "LoadDataAsync: Flickr sorting (ascending) is not working");
            Assert.AreEqual(data.OrderBy(x => x.Title).Select(x => x.Title).LastOrDefault(), data.ToList()[data.Count() - 1].Title, "LoadDataAsync: Flickr sorting (ascending) is not working");

            data = await dataProvider.LoadMoreDataAsync();

            Assert.AreEqual(data.OrderBy(x => x.Title).Select(x => x.Title).FirstOrDefault(), data.ToList()[0].Title, "LoadMoreDataAsync: Flickr sorting (ascending) is not working");
            Assert.AreEqual(data.OrderBy(x => x.Title).Select(x => x.Title).LastOrDefault(), data.ToList()[data.Count() - 1].Title, "LoadMoreDataAsync: Flickr sorting (ascending) is not working");

            config = new FlickrDataConfig
            {
                Query          = "100292344@N05",
                QueryType      = FlickrQueryType.Id,
                OrderBy        = nameof(FlickrSchema.Title),
                OrderDirection = SortDirection.Descending
            };

            dataProvider = new FlickrDataProvider();
            data         = await dataProvider.LoadDataAsync(config, 5);

            Assert.AreEqual(data.OrderByDescending(x => x.Title).Select(x => x.Title).FirstOrDefault(), data.ToList()[0].Title, "LoadDataAsync: Flickr sorting (descending) is not working");
            Assert.AreEqual(data.OrderByDescending(x => x.Title).Select(x => x.Title).LastOrDefault(), data.ToList()[data.Count() - 1].Title, "LoadDataAsync: Flickr sorting (descending) is not working");

            data = await dataProvider.LoadMoreDataAsync();

            Assert.AreEqual(data.OrderByDescending(x => x.Title).Select(x => x.Title).FirstOrDefault(), data.ToList()[0].Title, "LoadMoreDataAsync: Flickr sorting (descending) is not working");
            Assert.AreEqual(data.OrderByDescending(x => x.Title).Select(x => x.Title).LastOrDefault(), data.ToList()[data.Count() - 1].Title, "LoadMoreDataAsync: Flickr sorting (descending) is not working");
        }
Пример #14
0
        public async Task LoadFlickrTags_OrderByPublished()
        {
            var config = new FlickrDataConfig
            {
                Query          = "windowsappstudio",
                QueryType      = FlickrQueryType.Tags,
                OrderBy        = nameof(FlickrSchema.Published),
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new FlickrDataProvider();
            IEnumerable <FlickrSchema> data = await dataProvider.LoadDataAsync(config, 5);

            Assert.AreEqual(data.OrderBy(x => x.Published).Select(x => x.Published).FirstOrDefault(), data.ToList()[0].Published, "LoadDataAsync: Flickr sorting (ascending) is not working");
            Assert.AreEqual(data.OrderBy(x => x.Published).Select(x => x.Published).LastOrDefault(), data.ToList()[data.Count() - 1].Published, "LoadDataAsync: Flickr sorting (ascending) is not working");

            data = await dataProvider.LoadMoreDataAsync();

            Assert.AreEqual(data.OrderBy(x => x.Published).Select(x => x.Published).FirstOrDefault(), data.ToList()[0].Published, "LoadMoreDataAsync: Flickr sorting (ascending) is not working");
            Assert.AreEqual(data.OrderBy(x => x.Published).Select(x => x.Published).LastOrDefault(), data.ToList()[data.Count() - 1].Published, "LoadMoreDataAsync: Flickr sorting (ascending) is not working");

            config = new FlickrDataConfig
            {
                Query          = "windowsappstudio",
                QueryType      = FlickrQueryType.Tags,
                OrderBy        = nameof(FlickrSchema.Published),
                OrderDirection = SortDirection.Descending
            };

            dataProvider = new FlickrDataProvider();
            data         = await dataProvider.LoadDataAsync(config, 5);

            Assert.AreEqual(data.OrderByDescending(x => x.Published).Select(x => x.Published).FirstOrDefault(), data.ToList()[0].Published, "LoadDataAsync: Flickr sorting (descending) is not working");
            Assert.AreEqual(data.OrderByDescending(x => x.Published).Select(x => x.Published).LastOrDefault(), data.ToList()[data.Count() - 1].Published, "LoadDataAsync: Flickr sorting (descending) is not working");

            data = await dataProvider.LoadMoreDataAsync();

            Assert.AreEqual(data.OrderByDescending(x => x.Published).Select(x => x.Published).FirstOrDefault(), data.ToList()[0].Published, "LoadMoreDataAsync: Flickr sorting (descending) is not working");
            Assert.AreEqual(data.OrderByDescending(x => x.Published).Select(x => x.Published).LastOrDefault(), data.ToList()[data.Count() - 1].Published, "LoadMoreDataAsync: Flickr sorting (descending) is not working");
        }
Пример #15
0
        public async void GetItems()
        {
            string          flickrQueryParam = "Abstract";
            FlickrQueryType queryType        = FlickrQueryType.Tags;
            int             maxRecordsParam  = 12;

            Items.Clear();

            var flickrDataProvider = new FlickrDataProvider();
            var config             = new FlickrDataConfig
            {
                Query     = flickrQueryParam,
                QueryType = queryType
            };

            var items = await flickrDataProvider.LoadDataAsync(config, maxRecordsParam);

            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
Пример #16
0
        private async Task <ObservableCollection <Photo> > GetFlickrPhotos(FlickrDataConfig flickrDataConfig)
        {
            try
            {
                if (IsNetworkAvailable)
                {
                    Views.Busy.SetBusy(true, ViewModelLocator.ResLoader.GetString("Loading"));

                    var photos = await FlickrService.Instance.RequestAsync(flickrDataConfig, _pageIndex, 50);

                    _pageIndex++;
                    return(new ObservableCollection <Photo>(photos));
                }
            }
            catch (Exception ex)
            {
                AppLogs.WriteError("[GetFlickrPhotos]", ex.ToString());
            }
            finally
            {
                Views.Busy.SetBusy(false);
            }
            return(new ObservableCollection <Photo>());
        }
Пример #17
0
        private void SearchQueryCommandExecute(object args)
        {
            try
            {
                if (args is AutoSuggestBoxQuerySubmittedEventArgs)
                {
                    var queryText = (args as AutoSuggestBoxQuerySubmittedEventArgs).QueryText;

                    var flickrConfig = new FlickrDataConfig()
                    {
                        QueryType = FlickrQueryType.Search, Query = queryText
                    };

                    Reset();

                    PhotoCollection = new IncrementalLoadingCollection <Photo>((cancellationToken, count)
                                                                               => Task.Run(() => GetFlickrPhotos(flickrConfig), cancellationToken));
                }
            }
            catch (Exception ex)
            {
                AppLogs.WriteError("[SearchQueryCommandExecute]", ex.ToString());
            }
        }