public Task ReconnectToken(string infoToken)
 {
     try
     {
         TokenRequesModel infoDataCon = JsonConvert.DeserializeObject <TokenRequesModel>(infoToken);
         string           Token       = infoDataCon.Token;
         string           idUser      = infoDataCon.UserID.ToString();
         string           clientID    = checkClientIDWithToken(Token);
         if (!ConnectedClients.ContainsKey(Token))
         {
             ConnectedClients[Token] = clientID;
             using (DpsConnection cnn = new DpsConnection(_config.ConnectionString))
             {
                 Hashtable has = new Hashtable();
                 has.Add("Token", Token);
                 has.Add("TimeTokenConnect", DateTime.Now);
                 SqlConditions cond = new SqlConditions();
                 cond.Add("ConnectionId", clientID);
                 if (cnn.Update(has, cond, "SignalR_Connect") == 1)
                 {
                 }
             }
         }
         //return base.OnConnected();
     }
     catch (Exception ex)
     {
         return(base.OnDisconnectedAsync(ex));
     }
     return(base.OnConnectedAsync());
 }
 public Task onDisconnectToken(string infoToken)
 {
     try
     {
         TokenRequesModel infoDataCon = JsonConvert.DeserializeObject <TokenRequesModel>(infoToken);
         string           Token       = infoDataCon.Token;
         string           idUser      = infoDataCon.UserID.ToString();
         string           clientID    = checkClientIDWithToken(Token);
         if (!ConnectedClients.ContainsKey(Token))
         {
             ConnectedClients[Token] = clientID;
             using (DpsConnection cnn = new DpsConnection(_config.ConnectionString))
             {
                 SqlConditions val = new SqlConditions();
                 val.Add("Token", Token);
                 cnn.Delete(val, "SignalR_Connect");
                 ConnectedClients.Remove(Token);
             }
         }
     }
     catch (Exception ex)
     {
         return(base.OnDisconnectedAsync(ex));
     }
     return(base.OnDisconnectedAsync(new Exception()));
 }
        public async Task SendMessage(string infoToken)
        {
            TokenRequesModel infoDataCon = JsonConvert.DeserializeObject <TokenRequesModel>(infoToken);
            string           Token       = infoDataCon.Token;
            string           idUser      = infoDataCon.UserID.ToString();
            string           message     = infoDataCon.Value.ToString();
            string           clientID    = checkClientIDWithToken(Token);
            await Clients.Client(clientID).SendAsync("receiveMessage", clientID, message);

            //await Clients.All.SendAsync("receiveMessage", clientID, message);
        }
        public Task OnConnectedTokenAsync(string infoToken)
        {
            try
            {
                var id = Context.ConnectionId;
                TokenRequesModel infoDataCon = JsonConvert.DeserializeObject <TokenRequesModel>(infoToken);
                string           Token       = infoDataCon.Token;
                string           idUser      = infoDataCon.UserID.ToString();
                string           clientId    = Context.ConnectionId;
                if (!ConnectedClients.Keys.Contains(Token))
                {
                    ConnectedClients.Add(Token, clientId);
                }
                else
                {
                    ConnectedClients[Token] = clientId;
                }
                using (DpsConnection cnn = new DpsConnection(_config.ConnectionString))
                {
                    Hashtable has = new Hashtable();
                    has.Add("Token", Token);
                    has.Add("TimeConnect", DateTime.Now);
                    has.Add("TimeTokenConnect", DateTime.Now);
                    has.Add("ConnectionId", clientId);

                    string sql_ = @" IF EXISTS (SELECT * FROM SignalR_Connect c WHERE c.Token=@Token)
		                                BEGIN
			                                DELETE SignalR_Connect WHERE Token =@Token 
		                                END "        ;

                    cnn.ExecuteNonQuery(sql_, new SqlConditions {
                        { "Token", Token }
                    });
                    if (cnn.Insert(has, "SignalR_Connect") == 1)
                    {
                    }
                }
            }catch (Exception ex)
            {
                return(base.OnDisconnectedAsync(ex));
            }
            return(base.OnConnectedAsync());
        }