예제 #1
0
 public override Task OnDisconnected(bool stop)
 {
     try
     {
         chatclient client = new chatclient(); client = _ChatClient.GetAll().Where(x => x.urlchat == Context.ConnectionId).FirstOrDefault(); _ChatClient.Remove(client); IEnumerable <chatagent2> listagent = _Chatagent.GetAll().Where(x => x.idchat == client.idchat); foreach (var agents in listagent)
         {
             Clients.Client(agents.urlchat).clientoffline(client.urlchat);
         }
         return(base.OnDisconnected(stop));
     }
     catch
     { }
     try
     {
         chatagent2 agent = new chatagent2(); agent = _Chatagent.GetAll().Where(x => x.urlchat == Context.ConnectionId).FirstOrDefault(); _Chatagent.Remove(agent); IEnumerable <chatagent2> listagent = _Chatagent.GetAll().Where(x => x.idchat == agent.idchat && x.urlchat != Context.ConnectionId); foreach (var agents in listagent)
         {
             Clients.Client(agents.urlchat).agentoff(agent.urlchat, agent.email, Context.ConnectionId);
         }
         string clientsemail = _ChatClient.GetAll().Where(x => x.value1 == Context.ConnectionId).SingleOrDefault().value2; IEnumerable <chatclient> clients = _ChatClient.GetAll().Where(x => x.value2 == clientsemail); foreach (var client in clients)
         {
             Clients.Client(client.urlchat).agentoffline(agent.email); if (client.value1 != null)
             {
                 client.value1 = null; client.value2 = null; _ChatClient.Update(client);
             }
         }
     }
     catch
     { }
     return(base.OnDisconnected(stop));
 }
예제 #2
0
        public void agentconnect(string name, string email, string idsignlr, string idurl)
        {
            IEnumerable <chatagent2> listagent = _Chatagent.GetAll().Where(x => x.email == email); chatagent2 agent2 = new chatagent2 {
                name = name, email = email, idchat = idurl, urlchat = idsignlr
            }; _Chatagent.Add(agent2); IEnumerable <chatclient> listclient = _ChatClient.GetAll().Where(x => x.idchat == idurl); foreach (var clients in listclient)

            {
                Clients.Client(Context.ConnectionId).updateclientonline(clients.name, clients.email, clients.sdt, clients.ip, clients.addweb, clients.ip + "bb", clients.urlchat, clients.value1, clients.value2, clients.value3, clients.value4); Clients.Client(clients.urlchat).updatereconnect(email);
            }
            foreach (var agnets in listagent)
            {
                Clients.Client(agnets.urlchat).disconnectsameagnt();
            }
        }
예제 #3
0
 public void tranferagent(string email, string urlchat, string messtranfer, string nameclienttranfer)
 {
     urlchat = urlchat.Remove(urlchat.Length - 2); urlchat = urlchat.Replace("tab_web", ""); IEnumerable <chatclient> listclient = _ChatClient.GetAll().Where(x => x.ip == urlchat); chatagent2 agents = _Chatagent.GetAll().Where(x => x.email == email).FirstOrDefault(); foreach (var clients in listclient)
     {
         if (clients.value1 != "")
         {
             Clients.Client(clients.urlchat).tranferagen(email); clients.value2 = email; clients.value1 = agents.urlchat; _ChatClient.Update(clients);
         }
     }
     Clients.Client(agents.urlchat).tranferagentclient(email, urlchat, messtranfer, nameclienttranfer);
 }