Ejemplo n.º 1
0
        /// <summary>
        /// Retrieves the data from Youtube (channel: CNETTV ), filtered by a filter specification, in an observable collection of YouTubeVideo items.
        /// </summary>
        /// <param name="filter">Filter operation specification</param>
        /// <returns>An observable collection of YouTubeVideo items.</returns>
        public async Task <ObservableCollection <EntitiesBase.YouTubeVideo> > Search(FilterSpecification filter)
        {
            var data          = _storageService.Load <EntitiesBase.YouTubeVideo[]>("Videos_s5");
            var searchResults = RepositoriesBase.Filter <EntitiesBase.YouTubeVideo> .FilterCollection(filter, data);

            if (searchResults == null || !searchResults.Any())
            {
                data = await _youtubeDataSource.LoadRemote <EntitiesBase.YouTubeVideo[]>(String.Format(YoutubeBaseUrl, HttpUtility.UrlEncode(YoutubeQuery)));

                searchResults = RepositoriesBase.Filter <EntitiesBase.YouTubeVideo> .FilterCollection(filter, data);
            }
            return(searchResults);
        }