public IEnumerable <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1) { takeCounter = (length * start); // 20 skipCounter = ((length - 1) * start); // 10 using (SignalREntities dc = new SignalREntities()) { var msg = new List <PrivateChatMessage>(); var v = (from a in dc.tblChatPrivateMessageMasters join b in dc.tblChatPrivateMessageDetails on a.EmailID equals b.MasterEmailID into cc from c in cc where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid)) orderby c.ID descending select new { UserName = a.UserName, Message = c.Message, ID = c.ID }).Take(takeCounter).Skip(skipCounter).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { UserName = a.UserName, Message = a.Message }; msg.Add(res); } return(msg); } }
private void AddPrivateMessageinCache(string fromEmail, string chatToEmail, string userName, string message) { using (SignalREntities dc = new SignalREntities()) { // Save master var master = dc.tblChatPrivateMessageMasters.ToList().Where(a => a.EmailID.Equals(fromEmail)).ToList(); if (master.Count == 0) { var result = new tblChatPrivateMessageMaster { EmailID = fromEmail, UserName = userName }; dc.tblChatPrivateMessageMasters.Add(result); dc.SaveChanges(); } // Save details var resultDetails = new tblChatPrivateMessageDetail { MasterEmailID = fromEmail, ChatToEmailID = chatToEmail, Message = message }; dc.tblChatPrivateMessageDetails.Add(resultDetails); dc.SaveChanges(); } }
public IEnumerable <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take) { using (SignalREntities dc = new SignalREntities()) { var msg = new List <PrivateChatMessage>(); var v = (from a in dc.tblChatPrivateMessageMasters join b in dc.tblChatPrivateMessageDetails on a.EmailID equals b.MasterEmailID into cc from c in cc where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid)) orderby c.ID descending select new { UserName = a.UserName, Message = c.Message, ID = c.ID }).Take(take).ToList(); v = v.OrderBy(s => s.ID).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { UserName = a.UserName, Message = a.Message }; msg.Add(res); } return(msg); } }
public void AddComment(string Comment) { var Context = new SignalREntities(); Comment com = new Comment(); com.Comment1 = Comment; Context.Comments.Add(com); Context.SaveChanges(); Clients.All.AddNewComment(Comment); }
private void AddAllMessageinCache(string userName, string message) { using (SignalREntities dc = new SignalREntities()) { var messageDetail = new tblChatMessageDetail { UserName = userName, Message = message, EmailID = emailIDLoaded }; dc.tblChatMessageDetails.Add(messageDetail); dc.SaveChanges(); } }
public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled) { using (SignalREntities dc = new SignalREntities()) { var item = dc.tblChatUserDetails.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId); if (item != null) { dc.tblChatUserDetails.Remove(item); dc.SaveChanges(); var id = Context.ConnectionId; Clients.All.onUserDisconnected(id, item.UserName); } } return(base.OnDisconnected(stopCalled)); }
public static void GetData() { string con = ConfigurationManager.ConnectionStrings["DataBase"].ConnectionString; using (var connection = new SqlConnection(con)) { connection.Open(); SignalREntities db = new SignalREntities(); string uid = HttpContext.Current.User.Identity.GetUserId(); var query = db.Heartbeats as DbQuery <Heartbeat>; using (SqlCommand command = new SqlCommand(@"SELECT [NotificationId] ,[UserName] ,[UserId] ,[NotificationText] ,[NotificationDate] FROM [dbo].[Notification]" /*@"SELECT [ProductID],[Name],[UnitPrice],[Quantity] FROM [SignalRDemo].[dbo].[Products]"*/, connection)) { // Make sure the command object does not already have // a notification object associated with it. command.Notification = null; SqlDependency.Start(con); SqlDependency dependency = new SqlDependency(command); dependency.OnChange += new OnChangeEventHandler(dependency_OnChange); if (connection.State == ConnectionState.Closed) { connection.Open(); } using (var reader = command.ExecuteReader()) { } //return reader.Cast<IDataRecord>() // .Select(x => new Notification() // { // NotificationId = x.GetInt64(0), // UserName = x.GetString(1), // NotificationDate = x.GetDateTime(4), // Notification1 = x.GetString(3), // UserId = x.GetString(2), // }).Where(x => x.UserId == uid).ToList(); } } }
public void Connect(string userName, string userEmail) { // emailIDLoaded = userEmail; var id = Context.ConnectionId; using (SignalREntities dc = new SignalREntities()) { var item = dc.tblChatUserDetails.FirstOrDefault(x => x.EmailID == userEmail); if (item != null) { dc.tblChatUserDetails.Remove(item); dc.SaveChanges(); // Disconnect Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName); } var Users = dc.tblChatUserDetails.ToList(); if (Users.Where(x => x.EmailID == userEmail).ToList().Count == 0) { var userdetails = new tblChatUserDetail { ConnectionId = id, UserName = userName, EmailID = userEmail }; dc.tblChatUserDetails.Add(userdetails); dc.SaveChanges(); // send to caller var connectedUsers = dc.tblChatUserDetails.ToList(); var CurrentMessage = dc.tblChatMessageDetails.ToList(); Clients.Caller.onConnected(id, userName, connectedUsers, CurrentMessage); } // send to all except caller client Clients.AllExcept(id).onNewUserConnected(id, userName, userEmail); } }
public void SendPrivateMessage(string toUserId, string message, string status, DateTime dateTime) { string fromUserId = Context.ConnectionId; using (SignalREntities dc = new SignalREntities()) { var chatUserDetails = dc.tblChatUserDetails; var toUser = chatUserDetails.FirstOrDefault(x => x.ConnectionId == toUserId); var fromUser = chatUserDetails.FirstOrDefault(x => x.ConnectionId == fromUserId); if (toUser != null && fromUser != null) { if (status == "Click") { AddPrivateMessageinCache(fromUser.EmailID, toUser.EmailID, fromUser.UserName, message); } // send to Clients.Client(toUserId).sendPrivateMessage(fromUserId, fromUser.UserName, message, fromUser.EmailID, toUser.EmailID, status, fromUserId); // send to caller user Clients.Caller.sendPrivateMessage(toUserId, fromUser.UserName, message, fromUser.EmailID, toUser.EmailID, status, fromUserId); } } }