Beispiel #1
0
        private static ISpecification <MessageSummary, MessageSummary> GetItemSpecification(
            string folderId, MessageOrder order, MessageFilter filter)
        {
            var specification = Specification.Relay <MessageSummary>(q => q.Where(m => m.FolderId == folderId));

            switch (filter)
            {
            case MessageFilter.Unread:
                specification = specification.Chain(q => q.Where(m => !m.IsRead));
                break;

            case MessageFilter.Flagged:
                specification = specification.Chain(q => q.Where(m => m.IsFlagged));
                break;
            }

            switch (order)
            {
            case MessageOrder.ReceivedDateTime:
                specification = specification.Chain(q => q
                                                    .OrderByDescending(m => m.ReceivedDateTime)
                                                    .ThenBy(m => m.Id));
                break;

            case MessageOrder.Sender:
                break;
            }
            return(specification);
        }
Beispiel #2
0
        private static Func <MessageSummary, ISpecification <MessageSummary, MessageSummary> > GetIndexSpecification(
            string folderId, MessageOrder order, MessageFilter filter)
        {
            return((entity) =>
            {
                var specification = Specification.Relay <MessageSummary>(q => q.Where(m => m.FolderId == folderId));
                switch (filter)
                {
                case MessageFilter.Unread:
                    specification = specification.Chain(q => q.Where(m => !m.IsRead));
                    break;

                case MessageFilter.Flagged:
                    specification = specification.Chain(q => q.Where(m => m.IsFlagged));
                    break;
                }
                switch (order)
                {
                case MessageOrder.ReceivedDateTime:
                    specification = specification.Chain(q => q.Where(m => m.ReceivedDateTime > entity.ReceivedDateTime ||
                                                                     m.ReceivedDateTime == entity.ReceivedDateTime && string.Compare(m.Id, entity.Id) < 0));
                    break;

                case MessageOrder.Sender:
                    break;
                }
                return specification;
            });
        }
Beispiel #3
0
        public static MessageOrder ParseMessOrder(string[] messColl)
        {
            MessageOrder order = null;

            try
            {
                order = new MessageOrder();
                order.maxJoinNumber = int.Parse(messColl[2]);
            }
            catch (Exception e)
            {
                FileWorker.LogHelper.WriteLog("解析D02记录失败," + e.Message);
            }
            return(order);
        }
Beispiel #4
0
        public List <dtoFilteredDisplayMessage> ParseObjectMessages(List <dtoFilteredDisplayMessage> messages, String searchBy, String startWith, MessageOrder orderBy, Boolean ascending, lm.Comol.Core.BaseModules.ProfileManagement.Business.ProfileManagementService pService)
        {
            var query = (from m in messages select m);

            if (!string.IsNullOrEmpty(searchBy) && string.IsNullOrEmpty(searchBy.Trim()) == false)
            {
                List <String> values = searchBy.Split(' ').ToList().Where(f => !String.IsNullOrEmpty(f)).Select(f => f.ToLower()).ToList();
                if (values.Any() && values.Count == 1)
                {
                    query = query.Where(r => !String.IsNullOrEmpty(r.DisplayName) && r.DisplayName.ToLower().Contains(searchBy.ToLower()));
                }
                else if (values.Any() && values.Count > 1)
                {
                    // values.Any(r.Name.ToLower().Contains) && values.Any(r.Surname.ToLower().Contains) ||
                    query = query.Where(r => !String.IsNullOrEmpty(r.DisplayName) && values.Any(r.DisplayName.ToLower().Contains));
                }
            }
            if (!String.IsNullOrEmpty(startWith))
            {
                if (startWith != "#")
                {
                    query = query.Where(r => r.FirstLetter == startWith.ToLower());
                }
                else
                {
                    query = query.Where(r => pService.DefaultOtherChars().Contains(r.FirstLetter));
                }
            }
            switch (orderBy)
            {
            case MessageOrder.ByDate:
                if (ascending)
                {
                    query = query.OrderBy(m => m.CreatedOn);
                }
                else
                {
                    query = query.OrderByDescending(m => m.CreatedOn);
                }
                break;

            case  MessageOrder.ByName:
                if (ascending)
                {
                    query = query.OrderBy(m => m.DisplayName);
                }
                else
                {
                    query = query.OrderByDescending(m => m.DisplayName);
                }
                break;
            }

            return(query.ToList());
        }