Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
                }
            }
        }