예제 #1
0
파일: ChatHub.cs 프로젝트: somdesp/UMC
        private void AddPrivateMessageinCache(string fromEmail, string chatToEmail, string userName, string message)
        {
            using (MeHelpChat dc = new MeHelpChat())
            {
                // Save master
                var master = dc.ChatPrivMensMaster.ToList().Where(a => a.EmailID.Equals(fromEmail)).ToList();
                if (master.Count == 0)
                {
                    var result = new ChatPrivMensMaster
                    {
                        EmailID  = fromEmail,
                        UserName = userName
                    };
                    dc.ChatPrivMensMaster.Add(result);
                    dc.SaveChanges();
                }

                // Save details
                var resultDetails = new ChatPrivMensDetal
                {
                    MasterEmailID = fromEmail,
                    ChatToEmailID = chatToEmail,
                    Message       = message
                };
                dc.ChatPrivMensDetal.Add(resultDetails);
                dc.SaveChanges();
            }
        }
예제 #2
0
        public void Connect(LoginViewModel login)
        {
            emailIDLoaded = login.Email;
            string id = Context.ConnectionId;

            using (MeHelpChat dc = new MeHelpChat())
            {
                var item = dc.ChatUsuDetal.FirstOrDefault(x => x.EmailID == login.Email);
                if (item != null)
                {
                    dc.ChatUsuDetal.Remove(item);
                    dc.SaveChanges();

                    // Disconnect
                    Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName);
                }

                var Users = dc.ChatUsuDetal.ToList();
                if (Users.Where(x => x.EmailID == login.Email).ToList().Count == 0)
                {
                    var userdetails = new ChatUsuDetal
                    {
                        ConnectionId = id,
                        UserName     = login.Nome,
                        EmailID      = login.Email
                    };
                    dc.ChatUsuDetal.Add(userdetails);
                    dc.SaveChanges();
                    Users = dc.ChatUsuDetal.ToList();
                    // send to caller
                    SolicitacaoBLL      solicitacaoBLL = new SolicitacaoBLL();
                    var                 userss         = solicitacaoBLL.ListaAmizade(login.Id);
                    List <ChatUsuDetal> list           = new List <ChatUsuDetal>();

                    //valida se achou amigos
                    if (userss != null)
                    {
                        for (int i = 0; userss.Count > i; i++)
                        {
                            list.Add(Users.Find(x => x.EmailID == userss[i].Email));
                        }
                    }


                    var connectedUsers = list.ToList();
                    var CurrentMessage = dc.ChatMensDetal.ToList();
                    Clients.Caller.onConnected(id, login.Nome, connectedUsers, CurrentMessage);
                }


                // send to all except caller client
                Clients.AllExcept(id).onNewUserConnected(id, login.Nome, login.Email);
            }
        }
예제 #3
0
파일: ChatHub.cs 프로젝트: somdesp/UMC
 private void AddAllMessageinCache(string userName, string message)
 {
     using (MeHelpChat dc = new MeHelpChat())
     {
         var messageDetail = new ChatMensDetal
         {
             UserName = userName,
             Message  = message,
             EmailID  = emailIDLoaded
         };
         dc.ChatMensDetal.Add(messageDetail);
         dc.SaveChanges();
     }
 }
예제 #4
0
파일: ChatHub.cs 프로젝트: somdesp/UMC
        public override Task OnDisconnected(bool stopCalled)
        {
            using (MeHelpChat dc = new MeHelpChat())
            {
                var item = dc.ChatUsuDetal.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId);
                if (item != null)
                {
                    dc.ChatUsuDetal.Remove(item);
                    dc.SaveChanges();


                    Clients.All.onUserDisconnected(Context.ConnectionId, item.UserName);
                }
            }
            return(base.OnDisconnected(stopCalled));
        }