VB .NET - Login com Fluent NHibernate, NHibernate 4.0 e PostGreSql - III
Neste artigo vamos continuar a mostrar 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ários 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 Sub btnAdmin_Click(sender As Object, e As EventArgs) Handles btnAdmin.Click
My.Forms.frmManutencao.Show()
End Sub
|
1- Localizando Usuários
No código do formulário vamos primeiro incluir uma declaração para referenciar o projeto Repositorio:
Imports Repositorio
A seguir no evento Click do botão Localizar digite o código abaixo:
Private Sub btnLocalizar_Click(sender As Object, e As EventArgs) Handles btnLocalizar.Click
ErrorProvider1.Clear()
If txtNome.Text = String.Empty Then
ErrorProvider1.SetError(txtNome, "Informe o nome do usuário")
Return
End If
Try
Dim usuarioRepo As New UsuarioRepositorio
Dim _usuario As New Usuario
_usuario = usuarioRepo.LocalizarPorNome(txtNome.Text)
If IsNothing(_usuario) Then
MessageBox.Show("Usuário não localizado", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
txtID.Text = _usuario.Id
txtLogin.Text = _usuario.Login
txtSenha.Text = _usuario.Senha
cboStatus.Text = _usuario.Status
End If
Catch ex As Exception
MessageBox.Show("Erro ao cadastrar " & ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End Sub
|
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 Function LocalizarPorNome(nome As String) As Usuario
Try
Using session As ISession = SessionFactory.AbrirSession()
Return (From e In session.Query(Of Usuario)() Where e.Nome.Like(nome) Select e).FirstOrDefault
End Using
Catch ex As Exception
Throw ex
End Try
End Function
|
2- Alterar Usuários
No evento Click do botão Alterar digite o código abaixo:
Private Sub btnEditar_Click(sender As Object, e As EventArgs) Handles btnEditar.Click
ErrorProvider1.Clear()
If txtNome.Text = String.Empty Then
ErrorProvider1.SetError(txtNome, "Informe o nome do usuário")
Return
End If
If txtLogin.Text = String.Empty Then
ErrorProvider1.SetError(txtLogin, "Informe o login do usuário")
Return
End If
If txtSenha.Text = String.Empty Then
ErrorProvider1.SetError(txtSenha, "Informe a senha do usuário")
Return
End If
Try
Dim usuarioRepo As New UsuarioRepositorio
Dim _usuario As New Usuario
Dim codigo As Integer = Convert.ToInt32(txtID.Text)
_usuario.Nome = txtNome.Text
_usuario.Login = txtLogin.Text
_usuario.Senha = txtSenha.Text
_usuario.Status = cboStatus.Text
_usuario.Id = codigo
usuarioRepo.Alterar(_usuario)
MessageBox.Show("Usuário alterado com sucesso", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Catch ex As Exception
MessageBox.Show("Erro ao alterar o usuário " & ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End Sub
|
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 Sub btnExcluir_Click(sender As Object, e As EventArgs) Handles btnExcluir.Click
Try
Dim usuarioRepo As New UsuarioRepositorio
Dim _usuario As New Usuario
Dim codigo As Integer = Convert.ToInt32(txtID.Text)
_usuario = usuarioRepo.BuscarPorId(codigo)
usuarioRepo.Excluir(_usuario)
MessageBox.Show("Usuario excluido com sucesso", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Erro ao excluir o usuário " & ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End Sub
|
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:
Concluímos assim nosso projeto usando o NHibernate e os recursos do Visual Studio.
Pegue o projeto completo aqui: ControleUsuariosFinalVBNET.zip (sem as referências)
Todo o que o Pai me dá virá a mim; e o que vem a mim de maneira nenhuma o lançarei fora.João 6:37
João 6:38
Porque eu desci do céu, não para fazer a minha vontade, mas a vontade daquele que me enviou.João 6:39
E a vontade do que me enviou é esta: Que eu não perca nenhum de todos aqueles que me deu, mas que eu o ressuscite no último dia.
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 ?
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#