示例#1
0
        //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();
                }
            }
        }
示例#2
0
        private void DeleteMessages()
        {
            Sdo_ChatEntities db = new Sdo_ChatEntities();

            var all = from c in db.ChatMessageDetails select c;

            db.ChatMessageDetails.RemoveRange(all);
            db.SaveChanges();
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        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();
                    }
                }
            }
        }
示例#5
0
        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);
        }
示例#6
0
        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();
                }
            }
        }
示例#7
0
        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);
                }
            }
        }