public void Send(string userId, string message) { string connectionId = MyUsers.FirstOrDefault(x => x.Value == userId).Key; string userIdFromDict; MyUsers.TryGetValue(Context.ConnectionId, out userIdFromDict); if (userId == "" || message == "") { return; } if (userIdFromDict.Equals(userId)) { Clients.Client(connectionId).appendMessage(userIdFromDict, message); return; } using (ChatDal chatdb = new ChatDal()) { Message newMsg = new Message(); newMsg.ID = 1; newMsg.senderId = userIdFromDict; newMsg.receiverId = userId; newMsg.message = message; newMsg.sendTime = DateTime.Now.TimeOfDay; newMsg.SendDate = DateTime.Now; chatdb.messages.Add(newMsg); chatdb.SaveChanges(); } if (connectionId == null) { return; } Clients.Client(connectionId).appendMessage(userIdFromDict, message); }
public ActionResult getChats(string senderID, string recieverID) { /* get all chats between receiver and sender */ using (ChatDal chatDb = new ChatDal()) { var msgs = chatDb.messages.Where(x => (x.senderId.Equals(senderID) && x.receiverId.Equals(recieverID)) || (x.senderId.Equals(recieverID) && x.receiverId.Equals(senderID))).OrderBy(y => y.sendTime).ThenBy(z => z.SendDate).ToList(); return(Json(msgs, JsonRequestBehavior.AllowGet)); } }