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); }
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; }); }
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); }
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()); }