public override void OnClose() { var usuarioConectado = _servicoUsuario.ObterPorChave(_chaveAcesso); if (usuarioConectado != null) { _servicoUsuario.RemoverSessaoDoUsuario(usuarioConectado); webSocketClient.Remove(this); if (usuarioConectado.Atendente) { var atendimentosDeUsuarioAtivos = usuarioConectado.Atendimentos.Where(x => x.Cliente.SessaoSocketAtiva != null); foreach (var item in atendimentosDeUsuarioAtivos) { EnviarMensagem(usuarioConectado, item.Cliente, null); } } else { var atendimentosDeAtendentesAtivos = _servicoUsuario.AtendentesDisponiveis(); foreach (var atendente in atendimentosDeAtendentesAtivos) { EnviarMensagem(usuarioConectado, atendente, null); } } } base.OnClose(); }