예제 #1
0
 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 }));
 }
예제 #2
0
        // 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));
        }