Banco de Dados

15 jan, 2018

C# – CRUD no SQL Server com Dapper e MetroFramework usando um WebService – Parte 02

Publicidade

Continuando o artigo anterior, vamos implementar a interface do usuário em nosso projeto Windows Forms CRUD_Dapper usando o MetroFramework.

Abaixo, temos o formulário da aplicação que vamos criar usando o MetroFramework: (já mostrei como criar essa interface em outro artigo, mas vou repetir para quem está chegando agora).

Recursos Usados:

Criando a interface do usuário no projeto Windows Forms usando o MetroFramework

Selecione e abra o projeto CRUD_Dapper em nossa solução.

Vamos incluir a referência à biblioteca do MetroFramework em nosso projeto via Nuget.

No menu Tools, clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;

A seguir, informe metromodernui e clique em Browse;

Selecione o pacote encontrado, marque o projeto onde deseja instalar, e clique no botão Install (a versão atual no momento em que escrevi este artigo, era a v1.4.0);

Após instalar o pacote, você deve incluir os controles na ToolBox conforme eu mostro no artigo sobre o MetroFramework: VB .NET – Implementando interfaces ao estilo Metro com Macoratti

Definindo a interface da aplicação

Vamos agora definir a interface da aplicação no formulário Form1.cs.

Abra o formulário e altere o seu código para herdar da MetroFramework conforme abaixo:

namespace CRUD_Dapper
{
    public partial class Form1 : MetroFramework.Forms.MetroForm
    {    
        public Form1()
        {
            InitializeComponent();
        }
      ......
    }

Em seguida, a partir da ToolBox, incluiremos no formulário os seguintes controles:

  • MetroGrid – Name= gdFuncionarios
  • MetroPanel – Name = pContainer
  • PictureBox – Name= picFoto
  • 1 MetroButton – Name= btnProcurar
  • 6 MetroLabel: Funci ID, Nome, Email, Telefone, Endereco e Cargo
  • 6 MetroTextBox: txtID, txtNome, txtEmail, txtTelefone, txtEndereco e txtCargo
  • 5 MetroButton: btnAdicionar, btnEditar, btnDeletar, btnCancelar e btnSalvar
  • 1 MetroStyleManager: Name: msmMain

Disponha os controles conforme o layout da figura abaixo:

Definindo os namespaces e o estilo do formulário

Abra o formulário Form1.cs e altere o código incluindo os namespaces e o código no construtor do formulário para definir o estilo Dark conforme mostrado abaixo:

using Dapper;
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;
namespace CRUD_Dapper
{
    public partial class Form1 : MetroFramework.Forms.MetroForm
    {
        EntityState oStatus = EntityState.Unchanged;

        public Form1()
        {
            InitializeComponent();
            this.StyleManager = msmMain;
            msmMain.Theme = MetroFramework.MetroThemeStyle.Dark;
        }
      ....
   }

O código define os namespaces que iremos usar em nosso projeto, bem como o status inicial da operação que indica que os dados estão inalterados (Unchanged).

Depois, definimos o estilo que vamos aplicar ao formulário. Dentre as opções Light, Default e Dark, escolhemos a última.

Definindo o modelo de domínio

Crie uma pasta Model no projeto, e a seguir, crie o arquivo Funcionário.cs onde vamos definir a classe Funcionário que representa o nosso modelo de domínio. O código segue abaixo:

namespace CRUD_Dapper
{
    public class Funcionario
    {
        public int FuncionarioID { get; set; }
        public string Nome { get; set; }
        public string Email { get; set; }
        public string Telefone { get; set; }
        public string Endereco { get; set; }
        public string Cargo { get; set; }
        public string ImagemUrl { get; set; }
    }
}

A seguir, vamos criar o arquivo EntityState.cs e definir a enumeração EntityState que usaremos para controlar o modo da operação em execução. O código é visto a seguir:

namespace CRUD_Dapper
{
    public enum EntityState
    {
        Unchanged,
        Added,
        Changed,
        Deleted
    }
}

Usando esta enumeração vamos saber se estamos incluindo (Added), alterando (Changed) ou excluindo (Deleted).

Vinculando o MetroGrid à nossa fonte de dados: Funcionário

Agora vamos vincular o controle MetroGrid (gdFuncionários) à nossa fonte de dados.

Selecione o controle MetroGrid e em MetroGrid Tasks clique em Choose Data Source, e a seguir, clique no link Add Project Data Source;

Na janela Data Source Configuration Wizard, clique em Object, e a seguir em Next:

Depois selecione o objeto Funcionário e clique em Finish:

Será criada uma fonte de dados chamada funcionárioBindingSource que usaremos para vincular os dados aos controles de formulário.

Para fazer a vinculação, vamos selecionar cada caixa de texto, na janela de propriedades, expandir a propriedade (DataBindings) e em Text, selecionar a respectiva propriedade do bindingsource que deseja vincular ao controle.

Abaixo, temos a vinculação da propriedade FuncionárioID à caixa de texto txtID:

Repita o procedimento acima para cada caixa de texto e sua respectiva propriedade vinculada.

Pronto, agora temos as referências, a interface e a nossa fonte de dados definidas. Na próxima parte do artigo iremos consumir o Web Service em nosso projeto Windows Forms.