public ReMessageList GetReMessageList(string userId, int messageId) { if (db.ApplicationUserMessages.Any(aum => aum.MessageId == messageId)) { Message message = db.Messages.Where(m => m.Id == messageId).First(); if (message.ApplicationUserId == userId || db.ApplicationUserMessages.Where(aum => aum.MessageId == messageId).First().ApplicationUserId == userId) { ReMessageList model = new ReMessageList { Theme = message.Theme }; MessageUserIdPair tempMessageUserIdPair = GetFromUserMessage(messageId); model.ReMessageId = messageId; if (message.ApplicationUserId == userId) { model.ReceiverId = tempMessageUserIdPair.UserId; model.IsUser = tempMessageUserIdPair.IsUser; } else { model.ReceiverId = message.ApplicationUserId; model.IsUser = IsUser(message.ApplicationUserId); } model.ReMessages = new List <ReMessageItem> { }; Message tempMessage = message; for (; ;) { model.ReMessages.Add(new ReMessageItem { Sender = tempMessageUserIdPair.User, SenderId = tempMessageUserIdPair.UserId, IsUser = tempMessageUserIdPair.IsUser, Text = tempMessage.Text, DateTime = tempMessage.DateTime }); tempMessage = GetReMessage(tempMessage.Id); if (tempMessage != null) { tempMessageUserIdPair = GetFromUserMessage(tempMessage.Id); } else { break; } } return(model); } } return(null); }
public ActionResult MyMessages(ReMessageList model) { if (User.Identity.IsAuthenticated && (User.IsInRole("User") || User.IsInRole("Admin") || User.IsInRole("Administrator"))) { if (ModelState.IsValid) { SendMessageViewModel modelToWrite = new SendMessageViewModel { ToUserId = model.ReceiverId, Text = model.NewText, Theme = model.Theme }; MessageManager.WriteMessage(User.Identity.GetUserId(), modelToWrite, model.ReMessageId); ViewBag.IsSent = true; return(RedirectToAction("MyMessages", "Message")); } else { return(View(model)); } } return(RedirectToAction("Index", "Home")); }
public ActionResult MyMessages(int id) { if (User.Identity.IsAuthenticated && (User.IsInRole("User") || User.IsInRole("Admin") || User.IsInRole("Administrator"))) { int messageId = -1; try { messageId = Convert.ToInt32(id); } catch { return(RedirectToAction("MyMessages", "Message")); } MessageManager.ReadMessage(messageId, User.Identity.GetUserId()); ReMessageList model = MessageManager.GetReMessageList(User.Identity.GetUserId(), messageId); if (model != null) { return(View("ReWriteMessage", model)); } return(RedirectToAction("MyMessages", "Message")); } return(RedirectToAction("Index", "Home")); }