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)); }
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(); } }
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); }