public ActionResult AddAnswer(AddAnswerVM model) { if (model.IsLoad == EditMessageVM.LoadImage) { model.Message = UserMessageService.GetByPK(model.Message.UserMessageID); return(ProcessImage(model)); } var message = new UserMessage { ParentMessageID = model.Message.UserMessageID, IsActive = true, CreatorUserID = User.UserID, Text = model.Description }; var parent = UserMessageService.GetAll(x => x.UserMessageID == model.Message.UserMessageID && x.IsAnswered).FirstOrDefault(); if (parent != null) { parent.IsAnswered = false; } InsertAndSubmit(message); return(RedirectToAction(() => Details(model.Message.UserMessageID, 1))); }
private ActionResult ForumMessages(long?messageID, List <int> sectionIds) { var messages = (sectionIds.Any() ? UserMessageService.GetAll().Where(um => sectionIds.Contains(um.MessageSectionID.Value)) : UserMessageService.GetAll().Where(um => um.ParentMessageID == messageID)) .OrderByDescending(m => m.CreateDate) .Take(CommonConst.MessageCount).ToList(); var title = string.Empty; if (sectionIds.Any()) { if (sectionIds.Count == 1) { var section = MessageSectionService.GetByPK(sectionIds.First()); title = section.Name; } else { title = "Сообщения форума"; } } else { var message = UserMessageService.GetByPK(messageID); if (message == null) { title = "Сообщение не найдено"; } } return(GetFeed(title, messages)); }
public ActionResult GroupMessages(string tc) { var messages = UserMessageService.GetAll(um => um.Parent.Group.Teacher_TC == tc) .OrderByDescending(m => m.CreateDate) .Take(CommonConst.MessageCount).ToList(); return(GetFeed("Лента преподавателя", messages)); }
public ActionResult MessagesNotAnswered() { var messages = UserMessageService.GetAll(um => um.ParentMessageID == null && um.MessageSectionID.HasValue && !um.IsAnswered) .OrderByDescending(m => m.CreateDate) .Take(50).ToList(); return(GetFeed("Не отвеченные сообщения", messages)); }
private List <UserMessage> GetAllSectionsMessages(List <int> sections) { var messages = UserMessageService.GetAll(um => sections.Contains(um.MessageSectionID.Value)) .Union(UserMessageService.GetAll(um => sections.Contains(um.Parent.MessageSectionID.Value))) .OrderByDescending(m => m.CreateDate) .Take(CommonConst.MessageCount).ToList(); return(messages); }
public ActionResult Section(int?sectionID, int?pageIndex) { var section = MessageSectionService.GetByPK(sectionID); if (section == null) { return(null); } if ((section.IsGraduateClubOrChildren) && !User.GetOrDefault(x => x.InRole(Role.GraduateClubAccess))) { return(BaseView(new PagePart("Доступ только для выпускников"))); } if (section.Children.Any()) { var model2 = new SectionListVM { MessageSections = section.Children .AsQueryable().IsActive().ToList(), User = User }; foreach (var messageSection in model2.MessageSections) { messageSection.MessageCount = MessageSectionService .SectionMessageCounts().GetValueOrDefault(messageSection .MessageSectionID); messageSection.LastMessageDate = MessageSectionService .SectionLastMessageDates().GetValueOrDefault(messageSection .MessageSectionID); } return(View(ViewNames.SectionList, model2)); } pageIndex = pageIndex ?? 1; var messages = UserMessageService.GetAll() .Where(um => um.MessageSectionID == sectionID && um.IsActive) .OrderByDescending(um => um.Children.Max(um2 => (DateTime?)um2.CreateDate) ?? um.CreateDate) .ToPagedList(pageIndex.Value - 1); var messageIds = messages.Select(x => x.UserMessageID).ToList(); var messageCounts = UserMessageService .GetAll(x => messageIds.Contains(x.UserMessageID)) .Select(x => new { x.UserMessageID, x.Children.Count }).ToList() .ToDictionary(x => x.UserMessageID, x => x.Count); var model = new SectionMessageListVM { Messages = messages, MessageCounts = messageCounts, Section = section, }; return(View(ViewNames.MessageList, model)); }
public ActionResult MessagesForUser(int userId) { var messages = UserMessageService.GetAll(um => um.CreatorUserID != userId && UserMessageService.GetAll(x => x.CreatorUserID == userId) .Select(x => x.ParentMessageID ?? x.UserMessageID) .Contains(um.ParentMessageID.Value) ) .OrderByDescending(m => m.CreateDate) .Take(CommonConst.MessageCount).ToList(); return(GetFeed("Персональная лента", messages)); }
private List <UserMessage> GetLastMessages(decimal groupID) { var lastMessages = new List <UserMessage>(); var rootMessage = GetGroupRootMessage(groupID); if (rootMessage != null) { lastMessages = UserMessageService.GetAll(x => x.ParentMessageID == rootMessage.UserMessageID).OrderByDescending(x => x.CreateDate).Take(5).ToList(); } return(lastMessages); }
public ActionResult PrivateList(int receiverID, int?pageIndex) { pageIndex = pageIndex ?? 1; var sender = AuthService.CurrentUser; var receiver = UserService.GetByPK(receiverID); var userID = sender.UserID; var messages = UserMessageService.GetAll() .Where(um => (um.CreatorUserID == userID && um.ReceiverUserID == receiverID) || (um.CreatorUserID == receiverID && um.ReceiverUserID == userID)) .OrderByDescending(um => um.CreateDate) .ToPagedList(pageIndex.Value - 1); var model = new PrivateMessageListVM { Sender = sender, Receiver = receiver, Messages = messages, }; return(View(model)); }
private UserMessage GetGroupRootMessage(decimal groupID) { return(UserMessageService.GetAll() .FirstOrDefault(x => x.GroupID == groupID)); }