/// <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();
        }
예제 #2
0
		/// <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();
			}
		}
예제 #3
0
 /// <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);
 }
예제 #4
0
 /// <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);
 }