示例#1
0
        private async Task <IEnumerable <BlogViewModel> > LoadAll()
        {
            var result = new List <BlogViewModel>();

            var filterRules = new FilterCondition();

            if (SelectedCategories.IsNotNullOrEmpty())
            {
                var filterCategories = new FilterGroup();
                foreach (var category in SelectedCategories)
                {
                    filterCategories.Add(new FilterRule
                    {
                        Field          = "CategoryId",
                        FilterOperator = FilterOperator.Equal,
                        PropertyValues = new List <object> {
                            Guid.Parse(category)
                        },
                        LogicalOperator = LogicalOperator.Or
                    });
                }

                filterRules.Add(filterCategories);
            }

            if (SearchText.IsNotNullOrEmpty())
            {
                var filterGroup = new FilterGroup()
                {
                    LogicalOperator = LogicalOperator.And
                };
                filterGroup.Add(new FilterRule("Title", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterGroup.Add(new FilterRule("Summary", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterGroup.Add(new FilterRule("MarkdownContent", FilterOperator.Contains, LogicalOperator.Or, SearchText));
                filterRules.Add(filterGroup);
            }

            var pageQuery = new PagingQuery
            {
                Pagination = new Pagination
                {
                    PageNumber = PageNumber,
                    PageSize   = PageSize,
                },
                FilterCondition = filterRules
            };
            var entities = await _dataAdminService.GetPagedArticles(pageQuery);

            Total = entities.TotalRecords;
            if (entities.Count > 0)
            {
                var viewModels = AppRuntimeContext.Current.Adapt <List <BlogViewModel> >(entities);
                result.AddRange(viewModels);
            }
            //  await Task.Delay(1000 * 3);
            return(result);
        }