Example #1
0
        public ActionResult List(string userKey,int? pageIndex, int? pageSize)
        {
            var repository = Repository.Current;
            var categoryFolder = new TextFolder(repository, "Category");
            var articleFolder = new TextFolder(repository, "Article");

            var articleQuery = articleFolder.CreateQuery();

            //var userKey = Page_Context.Current.PageRequestContext.AllQueryString["UserKey"];

            if (!string.IsNullOrEmpty(userKey))
            {
                articleQuery = articleQuery.WhereCategory(categoryFolder.CreateQuery().WhereEquals("UserKey", userKey));
            }

            if (!pageIndex.HasValue)
            {
                pageIndex = 1;
            }
            if (!pageSize.HasValue)
            {
                pageSize = 2;
            }
            var pageData = articleQuery.Skip((pageIndex.Value - 1) * pageSize.Value).Take(pageSize.Value);

            DataRulePagedList pagedList = new DataRulePagedList(pageData,
                pageIndex.Value, pageSize.Value, articleQuery.Count());
            return View(pagedList);
        }
Example #2
0
        public ActionResult List(string userKey, int?pageIndex, int?pageSize)
        {
            var repository     = Repository.Current;
            var categoryFolder = new TextFolder(repository, "Category");
            var articleFolder  = new TextFolder(repository, "Article");

            var articleQuery = articleFolder.CreateQuery();

            //var userKey = Page_Context.Current.PageRequestContext.AllQueryString["UserKey"];

            if (!string.IsNullOrEmpty(userKey) && userKey != "--")
            {
                articleQuery = articleQuery.WhereCategory(categoryFolder.CreateQuery().WhereEquals("UserKey", userKey));
            }

            if (!pageIndex.HasValue)
            {
                pageIndex = 1;
            }
            if (!pageSize.HasValue)
            {
                pageSize = 10;
            }
            var pageData = articleQuery.Skip((pageIndex.Value - 1) * pageSize.Value).Take(pageSize.Value);

            DataRulePagedList pagedList = new DataRulePagedList(pageData,
                                                                pageIndex.Value, pageSize.Value, articleQuery.Count());

            return(View(pagedList));
        }
Example #3
0
        public static void Execute(ViewDataDictionary viewData, DataRuleContext dataRuleContext, IEnumerable<DataRuleSetting> dataRules)
        {
            foreach (var item in dataRules)
            {
                var contentQuery = item.DataRule.Execute(dataRuleContext);
                object data = contentQuery;
                if (item.DataRule is DataRuleBase)
                {
                    var dataRuleBase = (DataRuleBase)item.DataRule;
                    if (!string.IsNullOrEmpty(dataRuleBase.SortField))
                    {
                        if (dataRuleBase.SortDirection == DataRule.SortDirection.Ascending)
                        {
                            contentQuery = contentQuery.OrderBy(dataRuleBase.SortField);
                        }
                        else
                        {
                            contentQuery = contentQuery.OrderByDescending(dataRuleBase.SortField);
                        }
                    }
                    if (item.DataRule.EnablePaging.Value)
                    {
                        string pageIndexParameterName;
                        var pageIndexValue = ParameterizedFieldValue.GetFieldValue(dataRuleBase.PageIndex, dataRuleContext.ValueProvider, out pageIndexParameterName);
                        var intPageIndexValue = 1;
                        int.TryParse(pageIndexValue, out intPageIndexValue);
                        if (intPageIndexValue < 1)
                        {
                            intPageIndexValue = 1;
                        }

                        string pageSizeParameterName;
                        var pageSizeValue = ParameterizedFieldValue.GetFieldValue(dataRuleBase.PageSize, dataRuleContext.ValueProvider, out pageSizeParameterName);
                        var intPageSize = 10;
                        int.TryParse(pageSizeValue, out intPageSize);
                        if (intPageSize < 1)
                        {
                            intPageSize = 10;
                        }

                        var totalCount = contentQuery.Count();

                        data = new DataRulePagedList(contentQuery.Skip((intPageIndexValue - 1) * intPageSize).Take(intPageSize)
                            , intPageIndexValue
                            , intPageSize
                            , totalCount)
                            {
                                PageIndexParameterName = pageIndexParameterName
                            };
                    }
                    else if (!string.IsNullOrEmpty(dataRuleBase.Top))
                    {
                        string fieldName;
                        var topValue = ParameterizedFieldValue.GetFieldValue(dataRuleBase.Top, dataRuleContext.ValueProvider, out fieldName);
                        var intTopValue = 1;
                        int.TryParse(topValue, out intTopValue);

                        data = contentQuery.Take(intTopValue);
                    }
                    else
                    {
                        data = contentQuery;
                    }
                }

                if (data is IContentQuery<ContentBase>)
                {
                    data = GetData(item, (IContentQuery<TextContent>)data);
                }

                if (item.DataName.EqualsOrNullEmpty(ModelName, StringComparison.CurrentCultureIgnoreCase))
                {
                    viewData.Model = data;
                }
                viewData[item.DataName] = data;
            }
        }
Example #4
0
        public object Execute(DataRuleContext dataRuleContext, TakeOperation operation, int cacheDuration)
        {
            var contentQuery = this.GetContentQuery(dataRuleContext);
            object data = contentQuery;

            if (!string.IsNullOrEmpty(this.SortField))
            {
                if (this.SortDirection == DataRule.SortDirection.Ascending)
                {
                    contentQuery = contentQuery.OrderBy(this.SortField);
                }
                else
                {
                    contentQuery = contentQuery.OrderByDescending(this.SortField);
                }
            }
            if (this.EnablePaging.Value)
            {
                string pageIndexParameterName;
                var pageIndexValue = ParameterizedFieldValue.GetFieldValue(this.PageIndex, dataRuleContext.ValueProvider,
                    out pageIndexParameterName);
                var intPageIndexValue = 1;
                int.TryParse(pageIndexValue, out intPageIndexValue);
                if (intPageIndexValue < 1)
                {
                    intPageIndexValue = 1;
                }

                var intPageSize = 10;
                if (string.IsNullOrEmpty(this.Top))
                {
                    string pageSizeParameterName;
                    var pageSizeValue = ParameterizedFieldValue.GetFieldValue(this.PageSize,
                        dataRuleContext.ValueProvider, out pageSizeParameterName);

                    int.TryParse(pageSizeValue, out intPageSize);
                    if (intPageSize < 1)
                    {
                        intPageSize = 10;
                    }
                }
                else
                {
                    string fieldName;
                    var topValue = ParameterizedFieldValue.GetFieldValue(this.Top, dataRuleContext.ValueProvider,
                        out fieldName);
                    int.TryParse(topValue, out intPageSize);
                }

                var totalCount = contentQuery.Count();

                data = new DataRulePagedList(contentQuery.Skip((intPageIndexValue - 1)*intPageSize).Take(intPageSize)
                    , intPageIndexValue
                    , intPageSize
                    , totalCount)
                {
                    PageIndexParameterName = pageIndexParameterName
                };
            }
            else if (!string.IsNullOrEmpty(this.Top))
            {
                string fieldName;
                var topValue = ParameterizedFieldValue.GetFieldValue(this.Top, dataRuleContext.ValueProvider,
                    out fieldName);
                var intTopValue = 1;
                int.TryParse(topValue, out intTopValue);

                data = contentQuery.Take(intTopValue);
            }
            else
            {
                data = contentQuery;
            }

            if (data is IContentQuery<ContentBase>)
            {
                data = GetData((IContentQuery<TextContent>) data, operation, cacheDuration);
            }

            return data;
        }