//endregion //region private Messages private void AddMessageinCache(string userName, string message) { //CurrentMessage.Add(new MessageDetail { UserName = userName, Message = message }); //if (CurrentMessage.Count > 100) // CurrentMessage.RemoveAt(0); var fldr = new Sdo_ChatEntities(); var folderDetail = (from m in fldr.UserProfiles where m.UserName == userName select new { m.FolderId }).FirstOrDefault(); if (folderDetail != null) { using (Sdo_ChatEntities dc = new Sdo_ChatEntities()) { var messageDetail = new ChatMessageDetail { UserName = userName, Message = message, EmailID = emailIDLoaded, FolderId = folderDetail.FolderId, MsgTime = Convert.ToString(DateTime.Now.ToString("HH:mm:ss")), MsgDate = Convert.ToString(DateTime.Now) }; dc.ChatMessageDetails.Add(messageDetail); dc.SaveChanges(); } } }
private void DeleteMessages() { Sdo_ChatEntities db = new Sdo_ChatEntities(); var all = from c in db.ChatMessageDetails select c; db.ChatMessageDetails.RemoveRange(all); db.SaveChanges(); }
public void Connect(string userName) { var id = Context.ConnectionId; Sdo_ChatEntities dc = new Sdo_ChatEntities(); var ctx = new Sdo_ChatEntities(); var userDetail = (from m in ctx.UserProfiles where m.UserName == userName select new { m.UserName, m.UserImage, m.FolderId, m.Email }).FirstOrDefault(); if (userDetail != null) { if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0) { //ConnectedUsers.Add(new UserDetail { ConnectionId = id, UserName = userName, UserImage = userDetail.UserImage }); var item = dc.UserDetails.FirstOrDefault(x => x.UserName == userName); if (item != null) { dc.UserDetails.Remove(item); dc.SaveChanges(); // Disconnect Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName, item.UserImage, item.FolderId); } var Users = dc.UserDetails.ToList(); if (Users.Where(x => x.UserName == userName).ToList().Count == 0) { var userdetails = new UserDetail { ConnectionId = id, UserName = userName, UserImage = userDetail.UserImage, FolderId = userDetail.FolderId }; dc.UserDetails.Add(userdetails); dc.SaveChanges(); // send to caller var connectedUsers = dc.UserDetails.ToList(); var CurrentMessage = dc.ChatMessageDetails.ToList(); // send to caller Clients.Caller.onConnected(id, userName, connectedUsers, CurrentMessage); } // send to all except caller client Clients.AllExcept(id).onNewUserConnected(id, userName, userDetail.UserImage); } } }
public void removeMessages(string userName, string status) { using (Sdo_ChatEntities dc = new Sdo_ChatEntities()) { var fromUser = dc.UserDetails.FirstOrDefault(x => x.UserName == userName); if (fromUser != null) { if (status == "btnClear") { DeleteMessages(); } } } }
public List <ChatPrivateMessageDetail> PostPrivateChatHistory(ChatHistoryView users) { Sdo_ChatEntities db = new Sdo_ChatEntities(); var fromuserid = Convert.ToString(users.fromusers); var touserid = Convert.ToString(users.tousers); //var username = db.UserProfiles.Where(c => c.FolderId == fromuserid).FirstOrDefault(); //var chathistory = db.ChatPrivateMessageDetails.Where(c => c.MasterEmailID == username.UserName || c.ChatToEmailID == username.UserName).ToList(); var fromusername = db.UserProfiles.Where(c => c.Email == fromuserid).Select(c => c.UserName).FirstOrDefault(); var tousername = db.UserProfiles.Where(c => c.Email == fromuserid).Select(c => c.UserName).FirstOrDefault(); var chathistory = db.ChatPrivateMessageDetails.Where(c => c.MasterEmailID == fromusername || c.ChatToEmailID == tousername).ToList(); return(chathistory); }
private void AddPrivateMessageinCache(string chatToUser, string userName, string message) { using (Sdo_ChatEntities dc = new Sdo_ChatEntities()) { // Save master var master = dc.ChatPrivateMessageMasters.ToList().Where(a => a.UserName.Equals(userName)).ToList(); if (master.Count == 0) { var result = new ChatPrivateMessageMaster { UserName = userName }; dc.ChatPrivateMessageMasters.Add(result); dc.SaveChanges(); } // Save details var fldrone = new Sdo_ChatEntities(); var folderDetailone = (from m in fldrone.UserProfiles where m.UserName == userName select new { m.FolderId }).FirstOrDefault(); if (folderDetailone != null) { var resultDetails = new ChatPrivateMessageDetail { MasterEmailID = userName, ChatToEmailID = chatToUser, Message = message, FolderId = folderDetailone.FolderId, MsgTime = Convert.ToString(DateTime.Now.ToString("HH:mm:ss")), MsgDate = Convert.ToString(DateTime.Now) }; dc.ChatPrivateMessageDetails.Add(resultDetails); dc.SaveChanges(); } } }
public void SendPrivateMessage(string toUserId, string message, string status) { string fromUserId = Context.ConnectionId; using (Sdo_ChatEntities dc = new Sdo_ChatEntities()) { var toUser = dc.UserDetails.FirstOrDefault(x => x.ConnectionId == toUserId); var fromUser = dc.UserDetails.FirstOrDefault(x => x.ConnectionId == fromUserId); if (toUser != null && fromUser != null) { if (status == "Click") { AddPrivateMessageinCache(toUser.UserName, fromUser.UserName, message); } // send to Clients.Client(toUserId).sendPrivateMessage(fromUserId, fromUser.UserName, message); // send to caller user Clients.Caller.sendPrivateMessage(toUserId, fromUser.UserName, message); } } }