All posts tagged c#

Salve, salve galera,

Muita gente já precisou em algum momento gerar um classe que representasse um schema XML para poder utiliza-la como Model em alguma aplicação. Hoje em dia com a crescente demanda por emissão de documentos fiscais eletrônicos  (NFe, CTe, MDFe) a implementação nos sistemas legados tem se tornado alta.

Porem temos um problema muito grande, o schema XML da NFe por exemplo , tem muitas tags, e tipos complexos, o que demanda muito tempo de escrita de codigo, para minimizar (nao eliminar :D) esse problema, temos um recurso muito interessante no Visual Studio que nos permite criar uma classe apartir de um schema XML. Vamos ver ???

Primeiramente precisamos de um schema XML para trabalhar, nesse caso vou utilizar o schema atual da NFe.

Schema1

Tendo escolhido nosso schema, precisaremos abrir o Prompt de Comando do Visual Studio e nos dirigirmos ate a pasta onde se encontram esses schemas, no meu caso, esta nesse caminho

C:ProgramDataMicrosoftWindowsStart MenuProgramsMicrosoft Visual Studio 2012Visual Studio Tools

Schema2

Agora, para criarmos nossa classe basta utilizarmos o seguinte comando:


xsd.exe xmldsig-core-schema_v1.01.xsd nfe_v2.00.xsd /c

Teremos o seguinte resultado.

Schema3

Agora basta adicionarmos a classe gerada (que fica a principio com o mesmo nome do schema utilizado) e utiliza-la.

Segue um printzinho para termos uma ideia.

Schema4

 

Pessoal de uma maneira bem simples , temos uma classe Model do nosso schema, lembrando que, poderemos ter diferenças de funcionamento a cada conteúdo de schema (tipos complexos, e tudo mais). Mas isso já ajuda bastante.

Por hoje paro por aqui, espero ter ajudado.

 


Salve, salve galera…

Todos nós quando estamos desenvolvendo rotinas que trabalham com números imputados temos que nos atentar nas conversões e garantir que não haverá problemas.

Para isso temos a opção de realizar a conversão utilizando o método TryParse, porém, se a cada recuperação de dados fizermos isso nosso código ficara bem extenso. Então hoje vou demonstrar um recurso simples, mas que auxilia muito na nossa vida. Assim como temos o método ToString() que realiza uma conversão “automática” do valor para string, criaremos um método ToInt(), para que possamos de maneira simples recuperar valores imputados, ou realizar conversões com valores tipo INT.

public static int ToInt(this object param)
{
      int saida;
      if (param != null)
      {
           if (int.TryParse(param.ToString(), out saida))
                 return saida;
           else
                 throw new InvalidCastException("Impossível converter para inteiro");
      }
      else
      {
           throw new InvalidCastException("Impossível converter para inteiro");
      }
}

Pronto pessoal, esse é nosso método de extensão para recuperar o Int de um atributo ou variável, ou afins. E para utilizar basta chamarmos da seguinte forma.

int variavel = txtNumero.Text.ToInt()

Utilizando o algoritmo de hash MD5 com C#

Categories: C#
Comments: No

Pessoal neste post estarei mostrando como utilizar o algoritmo de hash MD5 através de uma string, recurso esse muito util para criptgrafia de valores. Vamos lá ?

O algoritmo MD5 é muito usado para armazenamento de senhas ou valores na qual queremos um certo cigilo.

Nesse exemplo converteremos uma string em um hash de 32 bits hexadecimal.


public string converterValor(string input)
 {

//Instancia a variavel que sera responsavel pela criação
 MD5 md5 = System.Security.Cryptography.MD5.Create();

//obtem os bytes correspondentes do valor de entrada e atribui a uma variavel vetor.
 byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);

//cria o hash atraves do valor de bytes obtidos
 byte[] hash = md5.ComputeHash(inputBytes);

//ordena os valores em uma string e retorna
 StringBuilder sb = new StringBuilder();
 for (int i = 0; i < hash.Length; i++) {
 sb.Append(hash[i].ToString("X2"));
 }
 return sb.ToString();
 }

Simples não é ?

Até a próxima pessoal.