async Task Search(string text) { SearchTerm = text; Skip = 0; try { SearchCollection.Clear(); // update current search options SearchStartDate = StartDate; SearchEndDate = EndDate; SearchCategory = SelectedCategory; // execute searchTask with the specified search keywords for the first time Debug.WriteLine(SearchTerm); IQueryResultEnumerable <News> items = await NewsManager.DefaultManager.GetNewsAsync((news) => news.Title.ToLower().Contains(SearchTerm.ToLower()) && news.NewsDate >= SearchStartDate && news.NewsDate <= SearchEndDate && (news.Type == SearchCategory || SearchCategory == "Tất cả"), Skip, 5); if (items != null && items.TotalCount > 0) { HeaderString = "- " + items.TotalCount + " kết quả -"; foreach (var item in items) { SearchCollection.Add(item); } Skip += 5; } else { HeaderString = "- Không có kết quả -"; } } catch (Exception e) { Debug.WriteLine(e); } }
/// <summary> /// Get News with a LINQ expression. /// </summary> /// <param name="action"></param> /// <returns></returns> public async Task <IQueryResultEnumerable <News> > GetNewsAsync(System.Linq.Expressions.Expression <System.Func <BKNews.News, bool> > action, int skip, int take) { try { #if OFFLINE_SYNC_ENABLED if (syncItems) { await this.SyncAsync(); } #endif IMobileServiceTableQuery <News> query = NewsTable.Where(action).OrderByDescending(news => news.NewsDate).Skip(skip).Take(take); query = query.IncludeTotalCount(); IQueryResultEnumerable <News> items = (IQueryResultEnumerable <News>) await query.ToListAsync(); return(items); } catch (MobileServiceInvalidOperationException msioe) { Debug.WriteLine(@"Invalid sync operation: {0}", msioe.Message); } catch (Exception e) { Debug.WriteLine(@"Sync error: {0}", e.Message); } return(null); }
public async void LoadMore() { Skip += 5; IQueryResultEnumerable <News> items = await NewsManager.DefaultManager.GetNewsAsync((news) => news.Title.ToLower().Contains(SearchTerm.ToLower()) && news.NewsDate >= SearchStartDate && news.NewsDate <= SearchEndDate && (news.Type == SearchCategory || SearchCategory == "Tất cả"), Skip, 5); if (items != null) { foreach (var item in items) { if (User.CurrentUser.Bookmarks.Contains(item)) { item.IsBookmarkedByUser = true; } SearchCollection.Add(item); } } }