/// <summary> /// Constrói o gerenciador de conexões. /// </summary> /// <param name="usuário">Entidade de usuário.</param> /// <param name="nome">Nome do usuário no banco de dados.</param> /// <param name="senha">Senha do usuário do banco de dados.</param> public GerenciadorConexões(Usuário usuário, string nome, string senha) { Thread construirConexões; this.usuário = usuário; this.nome = nome; this.senha = senha; CriarNovaConexão(); construirConexões = new Thread(new ThreadStart(EstabelecerMínimoConexões)); construirConexões.Name = "Estabelecimento do mínimo de conexões"; construirConexões.IsBackground = true; construirConexões.Start(); }
/// <summary> /// Efetua logoff de usuário /// </summary> public void EfetuarLogoff(Usuário usuário) { usuários.Remove(usuário.Chave); try { if (usuário.Conexão.State != ConnectionState.Closed) usuário.Conexão.Close(); } finally { // CallContext.FreeNamedDataSlot("usuário"); if (AoEfetuarLogoff != null) AoEfetuarLogoff(usuário); usuário.Dispose(); GC.Collect(); } }
/// <summary> /// Dispara evento ao registrar um erro. /// </summary> /// <param name="usuário">Usuário que registrou o erro.</param> /// <param name="e">Exceção levantada pelo usuário.</param> internal void DispararAoRegistrarErro(Usuário usuário, Exception e) { if (AoRegistrarErro != null) AoRegistrarErro(usuário, e); }
/// <summary> /// Dispara evento ao criar conexão. /// </summary> /// <param name="usuário">Usuário que criou a conexão.</param> internal void DispararAoCriarConexão(Usuário usuário) { if (AoCriarConexão != null) AoCriarConexão(usuário); }