 C# 
- Login com Fluent NHibernate, NHibernate 4.0 e PostGreSql - III
C# 
- Login com Fluent NHibernate, NHibernate 4.0 e PostGreSql - III
|  | Esta é a versão C# do artigo que mostra como usar o Fluent NHibernate e o NHibernate 4.0 para criar uma aplicação que realiza o login e faz o registro de um novo usuário no banco de dados PostgreSQL mostrando também como realizar as operações CRUD de manutenção dos usuários usando o padrão Repository. | 
Na segunda parte deste artigo criamos os formulário de login e registro e implementamos as funcionalidades de login do usuário e registro de um novo usuário.
Agora vamos continuar criando o formulário de manutenção de usuário onde iremos implementar a localização, alteração e exclusão de usuários.
Abra o projeto ControleUsuarios no Visual Studio 2013 for Windows desktop e a seguir clique no menu PROJECT e selecione Add Windows Forms;
Informe o nome frmManutencao e clique no botão Add;
A seguir a partir da ToolBox inclua os seguintes controle no formulário frmManutencao:
Disponha os controles conforme o leiaute da figura abaixo:
|  | 
Esse formulário será chamado a partir do formulário frmMenu no evento Click do botão Área Segura:
|  | 
O código para abrir o formulário frmManutencao é visto a seguir:
| private void 
    btnAdmin_Click(object sender, EventArgs e) { frmManutencao frmManu = new frmManutencao(); frmManu.Show(); } | 
1- Localizando Usuários
No código do formulário vamos primeiro incluir uma declaração para referenciar o projeto Repositorio e a pasta Entidades;
using
Repositorio;
using Repositorio.Entidades;
A seguir no evento Click do botão Localizar digite o código abaixo:
| private void btnLocalizar_Click(object sender, EventArgs e) { errorProvider1.Clear(); 
	                        if (txtNome.Text == string.Empty)                                 if ((_usuario == null)) | 
Este código após realizar a validação da caixa de texto : txtNome, cria uma instância da classe UsuarioRepositorio e da classe Usuario.
A seguir usamos o método LocalizarPorNome() da classe UsuarioRepositorio para localizar o usuário pelo seu nome. Se o usuário for localizado então atribuímos os valores às caixas de texto.
Nota : O código do método LocalizarPorNome() deverá ser incluído na classe UsuarioRepositorio conforme o código abaixo:
|  public Usuario LocalizarPorNome(string nome)
 {
     try {
          using (ISession session = SessionFactory.AbrirSession()) 
          {
  	 return (from e in session.Query<Usuario>()where e.Nome.Like(nome) select e).FirstOrDefault();
          }
       } 
      catch (Exception ex) 
      {
          throw ex;
      }
 } | 
2- Alterar Usuários
No evento Click do botão Alterar digite o código abaixo:
| private void btnEditar_Click(object sender, EventArgs e) { errorProvider1.Clear(); if (txtNome.Text == string.Empty) { errorProvider1.SetError(txtNome, "Informe o nome do usuário"); return; } if (txtLogin.Text == string.Empty) { errorProvider1.SetError(txtLogin, "Informe o login do usuário"); return; } if (txtSenha.Text == string.Empty) { errorProvider1.SetError(txtSenha, "Informe a senha do usuário"); return; } try { UsuarioRepositorio usuarioRepo = new UsuarioRepositorio(); Usuario _usuario = new Usuario(); int codigo = Convert.ToInt32(txtID.Text); _usuario.Nome = txtNome.Text; _usuario.Login = txtLogin.Text; _usuario.Senha = txtSenha.Text; _usuario.Status = Convert.ToChar(cboStatus.Text); _usuario.Id = codigo; usuarioRepo.Alterar(_usuario); MessageBox.Show("Usuário alterado com sucesso", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { MessageBox.Show("Erro ao alterar o usuário " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } | 
Este código após realizar as validações das caixas de texto : txtNome, txtLogin e txtSenha, cria uma instância da classe UsuarioRepositorio e da classe Usuario.
A seguir atribui os valores digitados nas caixas de texto aos valores das propriedades do objeto _usuario e usa o método Alterar() do Repositório para alterar o usuário.
3- Excluir Usuários
No evento Click do botão Excluir digite o código abaixo:
| private void btnExcluir_Click(object sender, EventArgs e) { try { UsuarioRepositorio usuarioRepo = new UsuarioRepositorio(); Usuario _usuario = new Usuario(); int codigo = Convert.ToInt32(txtID.Text); _usuario = usuarioRepo.RetornarPorId(codigo); usuarioRepo.Excluir(_usuario); MessageBox.Show("Usuario excluido com sucesso", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Erro ao excluir o usuário " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } | 
Este código cria uma instância da classe UsuarioRepositorio e da classe Usuario e obtém o valor do Id da caixa de texto txtId atribuindo-a à variável codigo.
A seguir usando o objeto usuarioRepo usamos o método BuscarPorId() passando o código obtido para localizar o usuário.
Depois usamos o método Excluir da classe UsuarioRepositorio para excluir o usuário.
Executando o projeto teremos:
|  | 
Pegue o projeto 
completo aqui: 
 ControleUsuariosFinalCSharp.zip (sem as referências)
ControleUsuariosFinalCSharp.zip (sem as referências)
João 3:17 Porque Deus enviou o seu Filho ao mundo, não para que julgasse o mundo, mas para que o mundo fosse salvo por ele.
João 3:18 Quem crê nele não é julgado; mas quem não crê, já está julgado; porquanto não crê no nome do unigênito Filho de Deus.
| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? | 
	
	
	Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#