Beispiel #1
0
        private void AddPrivateMessageinCache(string fromEmail, string chatToEmail, string userName, string message)
        {
            var uow = new XpoDAO().ProvideUnitOfWork();
            var ChatPrivateMessageMasters = new XPCollection <ChatPrivateMessageMaster>(uow);
            // Save master
            var master = ChatPrivateMessageMasters.ToList().Where(a => a.EmailID.Equals(fromEmail)).ToList();

            if (master.Count == 0)
            {
                var result = new ChatPrivateMessageMaster(uow)
                {
                    EmailID  = fromEmail,
                    UserName = userName
                };
                ChatPrivateMessageMasters.Add(result);
                uow.CommitChanges();
            }

            // Save details
            var ChatPrivateMessageDetails = new XPCollection <ChatPrivateMessageDetail>(uow);
            var resultDetails             = new ChatPrivateMessageDetail(uow)
            {
                MasterEmailID = fromEmail,
                ChatToEmailID = chatToEmail,
                Message       = message
            };

            ChatPrivateMessageDetails.Add(resultDetails);
            uow.CommitChanges();
        }
Beispiel #2
0
        public void Connect(string userName, string email)
        {
            emailIDLoaded = email;
            var id     = Context.ConnectionId;
            var uow    = new XpoDAO().ProvideUnitOfWork();
            var result = new XPCollection <ChatUserDetail>(uow);
            var item   = result.FirstOrDefault(x => x.EmailID == email);

            if (item != null)
            {
                uow.Delete(item);
                //result.Remove(item);
                uow.CommitChanges();
                // Disconnect
                Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName);
            }
            var Users = result;

            if (Users.Where(x => x.EmailID == email).ToList().Count == 0)
            {
                var userdetails = new ChatUserDetail(uow)
                {
                    ConnectionId = id,
                    UserName     = userName,
                    EmailID      = email
                };
                uow.CommitChanges();;

                // send to caller
                var connectedUsers = result;
                var CurrentMessage = new XPCollection <ChatMessageDetail>(uow);// dc.ChatMessageDetails.ToList();
                List <TempChatMessageDetail> lstTempChatMessageDetail = new List <TempChatMessageDetail>();
                foreach (var currentMessage in CurrentMessage)
                {
                    lstTempChatMessageDetail.Add(new TempChatMessageDetail()
                    {
                        EmailID  = currentMessage.EmailID,
                        Message  = currentMessage.Message,
                        UserName = currentMessage.UserName
                    });
                }


                List <TempChatUserDetail> lstTempChatUserDetail = new List <TempChatUserDetail>();
                foreach (var user in connectedUsers)
                {
                    var tempChatUserDetail = new TempChatUserDetail()
                    {
                        ConnectionId = user.ConnectionId,
                        EmailID      = user.EmailID,
                        UserName     = user.UserName
                    };
                    lstTempChatUserDetail.Add(tempChatUserDetail);
                }
                Clients.Caller.onConnected(id, userName, lstTempChatUserDetail, lstTempChatMessageDetail);//connectedUsers
            }

            // send to all except caller client
            Clients.AllExcept(id).onNewUserConnected(id, userName, email);
        }
Beispiel #3
0
        private void AddAllMessageinCache(string userName, string message)
        {
            var uow = new XpoDAO().ProvideUnitOfWork();
            var ChatMessageDetails = new XPCollection <ChatMessageDetail>(uow);
            var messageDetail      = new ChatMessageDetail(uow)
            {
                UserName = userName,
                Message  = message,
                EmailID  = emailIDLoaded
            };

            ChatMessageDetails.Add(messageDetail);
            uow.CommitChanges();
        }
Beispiel #4
0
        public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
        {
            var uow    = new XpoDAO().ProvideUnitOfWork();
            var result = new XPCollection <ChatUserDetail>(uow);
            var item   = result.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId);

            if (item != null)
            {
                //result.Remove(item);
                uow.Delete(item);
                uow.CommitChanges();

                var id = Context.ConnectionId;
                Clients.All.onUserDisconnected(id, item.EmailID);
                //Clients.All.onUserDisconnected(id, item.UserName);
            }

            return(base.OnDisconnected(stopCalled));
        }