public async Task Quem(string status) { try { var _quem = RetornaUsuLogado(); var _contextoConexao = Context; ////---------------------- //// LOG ////---------------------- //var _novocliente = new tblHubCliente() //{ // CnxId = _contextoConexao.ConnectionId, // Email = _quem.Email, // Status = status, // UsuarioAppId = _quem.Id //}; //_context.tblHubClientes.Add(_novocliente); //await _context.SaveChangesAsync(); //------------------------- // AQUI VISITANTE NÃO ENTRA //------------------------- if (!string.IsNullOrEmpty(_quem.UserName)) { // EXISTE? var _existesalaVIP = await _context.tblUsuSalaVIPs .FirstOrDefaultAsync(x => x.UsuarioAppId == _quem.Id); // NÃO!!!! if (_existesalaVIP == null) { // CRIA REGISTRO var _novoususalavip = new tblUsuSalaVIP() { CnxId = _contextoConexao.ConnectionId, UsuarioAppId = _quem.Id, Status = status }; _context.tblUsuSalaVIPs.Add(_novoususalavip); await _context.SaveChangesAsync(); } // SIM else { _existesalaVIP.DTHR = DateTime.Now; _existesalaVIP.CnxId = _contextoConexao.ConnectionId; _existesalaVIP.Status = status; _context.Attach(_existesalaVIP).State = EntityState.Modified; await _context.SaveChangesAsync(); } } else { //--------------------------- // VISITANTE!! TRATO OS NULLS //--------------------------- _quem.Id = "offline"; _quem.Nome = "visitante"; _quem.Sobrenome = "n: " + ManipuladorDeConexoes.Conectados.Count.ToString(); } // AVISA À TODOS await Clients .All // AVISA À TODOS, EXCETO VOCÊ //.AllExcept(_contextoConexao.ConnectionId) .SendAsync ( "quem", _contextoConexao.ConnectionId, _quem.Id, _quem.Nome + " " + _quem.Sobrenome, status, ManipuladorDeConexoes.Conectados.Count ); } catch (Exception erro) { string _erro = erro.Message; } }
public async Task Quem(string status, string idusu) { try { var _usu = _context.Users .Where(x => x.Id == idusu) .FirstOrDefault(); if (_usu.Sistema_FuncaoUsuario != "BOT") { //---------------------- // LOG //---------------------- var _novocliente = new tblHubCliente() { CnxId = Context.ConnectionId, Email = _usu.Email, Status = status, UsuarioAppId = _usu.Id }; _context.tblHubClientes.Add(_novocliente); await _context.SaveChangesAsync(); //----------------------------------------------- // **** ESSA TASK SERVE PARA "ENTROU/SAIU" // LIMPA ANTES DE CRIAR / LIMPA A SALA AO SAIR!!! //----------------------------------------------- var _limpa = _context.tblUsuSalaVIPs .Where(x => x.UsuarioAppId == _usu.Id); _context.tblUsuSalaVIPs.RemoveRange(_limpa); await _context.SaveChangesAsync(); //------------------------ // ALTERA FLAG: TÁ ONLINE? //------------------------ if (status.ToLower().Trim() == "entrou") { //---------------------- // TÁ ONLINE? //---------------------- var _novoususalavip = new tblUsuSalaVIP() { CnxId = Context.ConnectionId, UsuarioAppId = _usu.Id }; _context.tblUsuSalaVIPs.Add(_novoususalavip); await _context.SaveChangesAsync(); } // cnxid, de, para, mens, status //await Clients // .AllExcept(Context.ConnectionId) // .SendAsync // ( // "quemsoueu", // Context.ConnectionId, // idusu, // "", // _usu.Nome + " " + _usu.Sobrenome, // status // ); await Clients.All.SendAsync("quemsoueu", Context.ConnectionId, idusu, _usu.Id, _usu.Nome + " " + _usu.Sobrenome, status); //await Clients.All.SendAsync("listaclienteschat", _usu.Id); } } catch (Exception erro) { string _erro = erro.Message; } }