private IEnumerable<MessageStateInfo> GetMessageStateInfo(string query, string underlyingDataSourceSortArgument, int? listSize, string expression, string sortArgument)
        {
            Func<MessageStateInfo, object> keySelector = null;
            Func<MessageStateInfo, object> func2 = null;
            Assert.ArgumentNotNull(query, "query");
            string newValue = string.Format("*[@@id='{0}']", this.managerRoot.InnerItem.ID);
            if (string.IsNullOrEmpty(expression))
            {
                expression = "true";
            }
            FastItemReader reader2 = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue).Replace("{expression}", expression));
            reader2.SortExpression = underlyingDataSourceSortArgument;
            FastItemReader source = reader2;

            Func<Item, bool> funcIfVisible;
            funcIfVisible = delegate(Item i)
            {
                return (Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant());
            };

            IEnumerable<MessageStateInfo> enumerable = source.Take<Item>((listSize.HasValue ? listSize.Value : source.Count<Item>()))
                                                        .Where<Item>(funcIfVisible)
                                                        .Select<Item, object>(new Func<Item, object>(this.converter.ConvertFrom))
                                                        .Cast<MessageStateInfo>();
            if (string.IsNullOrEmpty(sortArgument))
            {
                return enumerable;
            }
            string asc = " ASC";
            if (sortArgument.EndsWith(asc))
            {
                if (keySelector == null)
                {
                    keySelector = delegate(MessageStateInfo info)
                    {
                        return DataBinder.Eval(info, sortArgument.Substring(0, sortArgument.Length - asc.Length));
                    };
                }
                return enumerable.OrderBy<MessageStateInfo, object>(keySelector);
            }
            string desc = " DESC";
            if (!sortArgument.EndsWith(desc))
            {
                throw new ArgumentException("Only 'ASC' and 'DESC' string endings can be used to specify sort order.");
            }
            if (func2 == null)
            {
                func2 = delegate(MessageStateInfo info)
                {
                    return DataBinder.Eval(info, sortArgument.Substring(0, sortArgument.Length - desc.Length));
                };
            }
            return enumerable.OrderByDescending<MessageStateInfo, object>(func2);
        }
        // Methods
        protected virtual IEnumerable<Item> GetItems(string query)
        {
            Assert.ArgumentNotNullOrEmpty(query, "query");
            Func<Item, bool> funcIfVisible;
            funcIfVisible = delegate(Item i)
            {
                return (Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant());
            };

            string newValue = "*[@@id='{0}']".FormatWith(new object[] { this.managerRoot.InnerItem.ID.ToString() });
            FastItemReader source = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue));
            return source.Where<Item>(funcIfVisible).ToList<Item>();
        }
예제 #3
0
        // Methods
        protected virtual IEnumerable <Item> GetItems(string query)
        {
            Assert.ArgumentNotNullOrEmpty(query, "query");
            Func <Item, bool> funcIfVisible;

            funcIfVisible = delegate(Item i)
            {
                return((Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant()));
            };

            string         newValue = "*[@@id='{0}']".FormatWith(new object[] { this.managerRoot.InnerItem.ID.ToString() });
            FastItemReader source   = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue));

            return(source.Where <Item>(funcIfVisible).ToList <Item>());
        }
        public List<DispatchedMessageInfo> GetDispatchedMessageInfo(string query, string sortArgument)
        {
            string newValue = string.Format("*[@@id='{0}']", this.managerRoot.InnerItem.ID.ToString());
            FastItemReader source = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue));

            Func<Item, bool> funcIfVisible;
            funcIfVisible = delegate(Item i)
            {
                return (Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant());
            };

            List<MessageItem> messages = source.Where<Item>(funcIfVisible).ToList<Item>().ConvertAll<MessageItem>(new Converter<Item, MessageItem>(Factory.GetMessage)).OrderByDescending<MessageItem, DateTime>(delegate(MessageItem message)
            {
                return message.StartTime;
            }).Take<MessageItem>(6).ToList<MessageItem>();
            return this.Build(messages);
        }
예제 #5
0
        public List <DispatchedMessageInfo> GetDispatchedMessageInfo(string query, string sortArgument)
        {
            string         newValue = string.Format("*[@@id='{0}']", this.managerRoot.InnerItem.ID.ToString());
            FastItemReader source   = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue));

            Func <Item, bool> funcIfVisible;

            funcIfVisible = delegate(Item i)
            {
                return((Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant()));
            };

            List <MessageItem> messages = source.Where <Item>(funcIfVisible).ToList <Item>().ConvertAll <MessageItem>(new Converter <Item, MessageItem>(Factory.GetMessage)).OrderByDescending <MessageItem, DateTime>(delegate(MessageItem message)
            {
                return(message.StartTime);
            }).Take <MessageItem>(6).ToList <MessageItem>();

            return(this.Build(messages));
        }
        protected virtual IEnumerable <Item> GetSortedItem(string query, string sortArgument)
        {
            Func <Item, object> func;

            Assert.ArgumentNotNullOrEmpty(query, "query");
            Assert.ArgumentNotNullOrEmpty(sortArgument, "sortArgument");
            if (sortArgument.StartsWith("Name "))
            {
                func = delegate(Item i)
                {
                    return(i.DisplayName);
                };
            }
            else
            {
                func = delegate(Item i)
                {
                    return(i.Statistics.Updated);
                };
            }

            Func <Item, bool> funcIfVisible;

            funcIfVisible = delegate(Item i)
            {
                return((Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant()));
            };
            string id       = (itemid != null) ? itemid : this.managerRoot.InnerItem.ID.ToString();
            string newValue = "*[@@id='{0}']".FormatWith(new object[] { id });

            string         databasename = (dbname != null) ? dbname : this.managerRoot.InnerItem.Database.Name;
            FastItemReader source       = new FastItemReader(databasename, query.Replace("{messages}", newValue));

            if (!sortArgument.EndsWith(" ASC", StringComparison.OrdinalIgnoreCase))
            {
                return(source.OrderByDescending <Item, object>(func).Where <Item>(funcIfVisible));
            }
            return(source.OrderBy <Item, object>(func).Where <Item>(funcIfVisible));
        }
        private IEnumerable <MessageStateInfo> GetMessageStateInfo(string query, string underlyingDataSourceSortArgument, int?listSize, string expression, string sortArgument)
        {
            Func <MessageStateInfo, object> keySelector = null;
            Func <MessageStateInfo, object> func2       = null;

            Assert.ArgumentNotNull(query, "query");
            string newValue = string.Format("*[@@id='{0}']", this.managerRoot.InnerItem.ID);

            if (string.IsNullOrEmpty(expression))
            {
                expression = "true";
            }
            FastItemReader reader2 = new FastItemReader(this.managerRoot.InnerItem.Database.Name, query.Replace("{messages}", newValue).Replace("{expression}", expression));

            reader2.SortExpression = underlyingDataSourceSortArgument;
            FastItemReader source = reader2;

            Func <Item, bool> funcIfVisible;

            funcIfVisible = delegate(Item i)
            {
                return((Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant()));
            };

            IEnumerable <MessageStateInfo> enumerable = source.Take <Item>((listSize.HasValue ? listSize.Value : source.Count <Item>()))
                                                        .Where <Item>(funcIfVisible)
                                                        .Select <Item, object>(new Func <Item, object>(this.converter.ConvertFrom))
                                                        .Cast <MessageStateInfo>();

            if (string.IsNullOrEmpty(sortArgument))
            {
                return(enumerable);
            }
            string asc = " ASC";

            if (sortArgument.EndsWith(asc))
            {
                if (keySelector == null)
                {
                    keySelector = delegate(MessageStateInfo info)
                    {
                        return(DataBinder.Eval(info, sortArgument.Substring(0, sortArgument.Length - asc.Length)));
                    };
                }
                return(enumerable.OrderBy <MessageStateInfo, object>(keySelector));
            }
            string desc = " DESC";

            if (!sortArgument.EndsWith(desc))
            {
                throw new ArgumentException("Only 'ASC' and 'DESC' string endings can be used to specify sort order.");
            }
            if (func2 == null)
            {
                func2 = delegate(MessageStateInfo info)
                {
                    return(DataBinder.Eval(info, sortArgument.Substring(0, sortArgument.Length - desc.Length)));
                };
            }
            return(enumerable.OrderByDescending <MessageStateInfo, object>(func2));
        }
        protected virtual IEnumerable<Item> GetSortedItem(string query, string sortArgument)
        {
            Func<Item, object> func;
            Assert.ArgumentNotNullOrEmpty(query, "query");
            Assert.ArgumentNotNullOrEmpty(sortArgument, "sortArgument");
            if (sortArgument.StartsWith("Name "))
            {
                func = delegate(Item i)
                {
                    return i.DisplayName;
                };
            }
            else
            {
                func = delegate(Item i)
                {
                    return i.Statistics.Updated;
                };
            }

            Func<Item, bool> funcIfVisible;
            funcIfVisible = delegate(Item i)
            {
                return (Sitecore.Context.User.IsAdministrator) || (i.Statistics.CreatedBy.ToLowerInvariant() == Sitecore.Context.User.Name.ToLowerInvariant());
            };
            string id = (itemid != null) ? itemid : this.managerRoot.InnerItem.ID.ToString();
            string newValue = "*[@@id='{0}']".FormatWith(new object[] { id });

            string databasename = (dbname != null) ? dbname : this.managerRoot.InnerItem.Database.Name;
            FastItemReader source = new FastItemReader(databasename, query.Replace("{messages}", newValue));
            if (!sortArgument.EndsWith(" ASC", StringComparison.OrdinalIgnoreCase))
            {
                return source.OrderByDescending<Item, object>(func).Where<Item>(funcIfVisible);
            }
            return source.OrderBy<Item, object>(func).Where<Item>(funcIfVisible);
        }