public ActionResult MessengerSend(MessengerVM model) { if (model == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (model.CurrentMessage == null || model.CurrentMessage == "") { return(View("Messenger", new { id = model.SecondMember.Id })); } else { Message userMessage = new Message { AuthorID = User.Identity.GetUserId(), Body = model.CurrentMessage, Date = DateTime.Now, ConversationID = model.Conversation.ID, Unread = false }; db.UserMessages.Add(userMessage); db.SaveChanges(); } return(RedirectToAction("Messenger", new { id = model.SecondMember.Id })); }
// GET: /Messages/Messenger/5 public ActionResult Messenger(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Member currentMember = userManager.FindById(User.Identity.GetUserId()); Member secondMember = db.Users.Find(id); if (secondMember == null || currentMember == null) { return(HttpNotFound()); } var conversation = (from c in db.Conversations where (c.FirstMemberID == currentMember.Id && c.SecondMemberID == secondMember.Id) || (c.FirstMemberID == secondMember.Id && c.SecondMemberID == currentMember.Id) select c).FirstOrDefault(); MessengerVM messengerVM = new MessengerVM(); if (conversation == null) { Conversation newConv = new Conversation { FirstMemberID = currentMember.Id, SecondMemberID = secondMember.Id }; db.Conversations.Add(newConv); db.SaveChanges(); Conversation createdConv = (from c in db.Conversations where (c.FirstMemberID == currentMember.Id && c.SecondMemberID == secondMember.Id) || (c.FirstMemberID == secondMember.Id && c.SecondMemberID == currentMember.Id) select c).FirstOrDefault(); messengerVM.Conversation = createdConv; } else { conversation.UserMessages = (from m in db.UserMessages where m.ConversationID == conversation.ID select m).ToList(); messengerVM.Conversation = conversation; } messengerVM.CurrentMember = currentMember; messengerVM.SecondMember = secondMember; return(View(messengerVM)); }