コード例 #1
0
		/// <summary>
        /// Retrieves the next element from source.
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>The next element from items, if it exists. Otherwise, returns null</returns>
        public async Task<EntitiesBase.RssSearchResult> Next(EntitiesBase.RssSearchResult current)
        {
			var data = await GetData();
			
            if (current == null || !data.Any()) return null;

		    var index = data.IndexOf(current);

            if (index == -1 || index == data.Count - 1) return null;

            return data[index + 1];
        }
コード例 #2
0
		/// <summary>
        /// Checks if data source has a element before the passed as parameter
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>True, if there is a previous element, false if there is not</returns>
		public async Task<bool> HasPrevious(EntitiesBase.RssSearchResult current)
        {
			var data = await GetData();
			
            if (current == null || !data.Any()) return false;

            return data.IndexOf(current) > 0;
        }
コード例 #3
0
		/// <summary>
        /// Checks if data source has a element after the passed as parameter
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>True, if there is a next element, false if there is not</returns>
		public async Task<bool> HasNext(EntitiesBase.RssSearchResult current)
        {
			var data = await GetData();
			
            if (current == null || !data.Any()) return false;

            return data.IndexOf(current) < data.Count - 1;
        }
コード例 #4
0
		/// <summary>
        /// Checks if data source has a element before the passed as parameter
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>True, if there is a previous element, false if there is not</returns>
		public bool HasPrevious(EntitiesBase.YouTubeVideo current)
        {
			var data = _storageService.Load<ObservableCollection<EntitiesBase.YouTubeVideo>>("Microsoft_microsoftvideos");
			
            if (current == null || !data.Any()) return false;

            return data.IndexOf(current) > 0;
        }
コード例 #5
0
		/// <summary>
        /// Retrieves the next element from source.
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>The next element from items, if it exists. Otherwise, returns null</returns>
        public async Task<EntitiesBase.YouTubeVideo> Next(EntitiesBase.YouTubeVideo current)
        {
            var data = _storageService.Load<ObservableCollection<EntitiesBase.YouTubeVideo>>("Microsoft_microsoftvideos");
			
            if (current == null || !data.Any()) return null;

            var index = data.IndexOf(current);
			
			if (index == -1) return null;

		    if (index != data.Count - 1) return data[index + 1];

		    var nextPageData = await GetData((int)Math.Ceiling(data.Count / (double)MaxResults));

		    if (!nextPageData.Any()) return null;

		    return nextPageData.First();
        }
コード例 #6
0
		/// <summary>
        /// Retrieves the previous element from source.
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>The previous element from items, if it exists. Otherwise, returns null</returns>
        public EntitiesBase.YouTubeVideo Previous(EntitiesBase.YouTubeVideo current)
        {
			var data = _storageService.Load<ObservableCollection<EntitiesBase.YouTubeVideo>>("Microsoft_microsoftvideos");
		
            if (current == null || !data.Any()) return null;

            var index = data.IndexOf(current);

            if (index == -1 || index == 0) return null;

            return data[index - 1];
        }
コード例 #7
0
		/// <summary>
        /// Checks if data source has a element after the passed as parameter
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>True, if there is a next element, false if there is not</returns>
		public async Task<bool> HasNext(EntitiesBase.YouTubeVideo current)
        {
			var data = _storageService.Load<ObservableCollection<EntitiesBase.YouTubeVideo>>("Microsoft_microsoftvideos");
			
            if (current == null || !data.Any()) return false;

            if(data.IndexOf(current) < data.Count - 1) return true;
			
			var nextPageData = await GetData((int)Math.Ceiling(data.Count / (double)MaxResults));

		    return nextPageData.Any();
        }
コード例 #8
0
		/// <summary>
        /// Retrieves the previous element from source.
        /// </summary>
		/// <param name="current">Current element</param>
        /// <returns>The previous element from items, if it exists. Otherwise, returns null</returns>
        public async Task<EntitiesBase.FlickrSearchResult> Previous(EntitiesBase.FlickrSearchResult current)
        {
			var data = await GetData();
		
            if (current == null || !data.Any()) return null;

            var index = data.IndexOf(current);

            if (index == 0 || index == -1) return null;

            return data[index - 1];
        }