public override bool Execute() { int total = accountServices.GetAllUserProfiles().Count(); if (index > total) index = 1; GetMessagesModel queryModel = new GetMessagesModel { GetUnreadOnly = false, NumberOfResults = 10, PageNumber = 1, UserProfileID = index++ }; var b = eventServices.GetMessages(queryModel); Console.WriteLine("\tTotal Messages for " + queryModel.UserProfileID + ": " + b.Count()); return true; }
public IQueryable<MessageModel> GetMessages(GetMessagesModel getMessagesModel) { UserProfile _user = db.UserProfiles.Where(us => us.UserProfileId == getMessagesModel.UserProfileID).FirstOrDefault(); if (_user == null) return null; if (getMessagesModel.NumberOfResults == 0) getMessagesModel.NumberOfResults = MIN_RESULTS; if (getMessagesModel.PageNumber < 1) getMessagesModel.PageNumber = 1; IEnumerable<Mail> query; if (getMessagesModel.GetUnreadOnly) { query = db.Mails.Where(mail => mail.ToUserProfile.UserProfileId == _user.UserProfileId && !mail.Read).OrderBy(sort => sort.DateSent).Skip((getMessagesModel.PageNumber - 1) * getMessagesModel.NumberOfResults).Take(getMessagesModel.NumberOfResults).ToList(); } else { query = db.Mails.Where(mail => mail.ToUserProfile.UserProfileId == _user.UserProfileId).OrderBy(sort => sort.DateSent).Skip((getMessagesModel.PageNumber - 1) * getMessagesModel.NumberOfResults).Take(getMessagesModel.NumberOfResults).ToList(); } List<MessageModel> retval = new List<MessageModel>(); foreach (Mail g in query) { retval.Add(new MessageModel { EventID = g.ReferredEvent == null ? (int?)null : g.ReferredEvent.EventId, Message = g.MailMessage, MessageID = g.MailId, ReceipientProfileID = g.ToUserProfile.UserProfileId, SenderProfileID = g.FromUserProfile.UserProfileId, Read = g.Read }); } return retval.AsQueryable(); }