quinta-feira, 28 de maio de 2009

Validar CNPJ

Segue abaixo código para validar CNPJ:

public static bool ValidaCNPJ(string vrCNPJ)
{
string CNPJ = vrCNPJ.Replace(".", "");
CNPJ = CNPJ.Replace("/", "");
CNPJ = CNPJ.Replace("-", "");
int[] digitos, soma, resultado;
int nrDig;
string ftmt;
bool[] CNPJOk;
ftmt = "6543298765432";
digitos = new int[14];
soma = new int[2];
soma[0] = 0;
soma[1] = 0;
resultado = new int[2];
resultado[0] = 0;
resultado[1] = 0;
CNPJOk = new bool[2];
CNPJOk[0] = false;
CNPJOk[1] = false;
try
{
for (nrDig = 0; nrDig < 14; nrDig++)
{
digitos[nrDig] = int.Parse(CNPJ.Substring(nrDig, 1));
if (nrDig <= 11)
soma[0] += (digitos[nrDig] * int.Parse(ftmt.Substring(nrDig + 1, 1)));
if (nrDig <= 12)
soma[1] += (digitos[nrDig] * int.Parse(ftmt.Substring(nrDig, 1)));
}
for (nrDig = 0; nrDig < 2; nrDig++)
{
resultado[nrDig] = (soma[nrDig] % 11);
if ((resultado[nrDig] == 0) (resultado[nrDig] == 1))
CNPJOk[nrDig] = (digitos[12 + nrDig] == 0);
else
CNPJOk[nrDig] = (digitos[12 + nrDig] == (11 - resultado[nrDig]));
}
return (CNPJOk[0] && CNPJOk[1]);
}
catch
{
return false;
}
}

Modificar Linguagem de Componentes ASP.NET para PT-BR

Para modificar a linguagem de alguns componentes de páginas em ASP.NET, ou até mesmo do site inteiro de inglês para PT-br (Brasil), é necessário:

- dentro do , no web.config, coloque: , ficando o código assim:




- coloque na página uma instancia do objeto ScriptManager

- dentro da tag do scriptManager, coloque: EnableScriptGlobalization="true" EnableScriptLocalization="true", ficando o código assim:



Agora a página e componentes como CalendarExtender, já estarão adaptados para textos em português e dados regionais.

Funcionamento do Dundas no IIS 7

Com o IIS 7.0 funcionando no 192.168.0.2, a ferramenta de gráfico Dundas acaba não funcionando.
Para contornar este problema, é necessário modificar Pool de Aplicativos do diretório virtual criado, fazendo os procedimentos abaixo:

- Clique no diretório, opções avançadas, pool de aplicativo.
- Mude de DefaultappPool para .Classic .NET appPool

Mais informações, segue o link do Dundas com a configuração.
http://support.dundas.com/Default.aspx?article=1220

Aplicativos compilados em 32x para rodar em 64x

Galera,
Segue os link que o Mori e o Tardin sugeriram sobre a questão dos aplicativos compilados em 32x para rodar em 64x.

http://msdn.microsoft.com/pt-br/library/ms241064(VS.80).aspx

Este aqui serve para o IIS 7.

http://www.codedigest.com/Articles/IIS/21_IIS7_-_Running_32-bit_and_64-bit_ASPNET_versions_at_the_same_time_on_different_worker_processes.aspx

http://forums.asp.net/p/1231371/2223100.aspx

quarta-feira, 27 de agosto de 2008

Requisitando páginas por POST(Página que retorna um XML) - C#, ASP.NET

Como nada é impossível e as vezes temos que tentar, coloco o código abaixo para ajudar aqueles que precisam resgatar o xml de uma página, seja ela feita em ASP, ASP.NET, PHP, Java, ou etc.
Lembrando que ela resgata qualquer contéudo mesmo se ele não for xml(podendo ele ser HTML).

//necessario adicionar as classes abaixo
using System.Net;
using System.Text;
using System.IO;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

///
/// Summary description for RequisicaoPagina
///

public class RequisicaoPagina
{
public RequisicaoPagina()
{
//
// TODO: Add constructor logic here
//
}
///
/// Posta dados para uma página e pega o retorno.
/// Passa somente um parametro.
/// Utilizado principalmente com serviços que recebem parametros por POST e retornam um XML.
/// Estes serviços não são WebServices.
/// Url que receberá os parametros
/// Nome do parametro a ser postado
/// Valor do Parametro a ser postado
///
public static string EnviarDadosPost(string Url, string Parametro, string Valor)
{
// Usado para receber o xml
StringBuilder sb = new StringBuilder();

// Usado para cada operação de leitura da saída
byte[] buf = new byte[8192];

// É necessário caso a página esteja em ssl
ServicePointManager.ServerCertificateValidationCallback += AcceptAllCertificatePolicy;

//criando o request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

request.Credentials = CredentialCache.DefaultCredentials;

request.Method = "POST";

//Adicionando os parametros a serem postados
string postData = Parametro+"="+Valor;
byte[] byteArray = System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(postData);

// Tipo do conteudo a ser requisitado
request.ContentType = "application/x-www-form-urlencoded";

// Tamanho do conteudo da requisição
request.ContentLength = byteArray.Length;

// criando stream da requisição
Stream dataStream = request.GetRequestStream();

// armazendo os dados da requisição no stream
dataStream.Write(byteArray, 0, byteArray.Length);

// fechando a requisição
dataStream.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream resStream = response.GetResponseStream();

string tempString = null;
int count = 0;

do
{
// Carrega o buffer com os dados enviados
count = resStream.Read(buf, 0, buf.Length);

// Se contiver dados carregará o stringBuilder
if (count != 0)
{
// Converte os Bytes para caracteres ASCII
//tempString = Encoding.ASCII.GetString(buf, 0, count);
tempString = System.Text.Encoding.GetEncoding("iso-8859-1").GetString(buf, 0, count);

// Adiciona ao stringBuilder
sb.Append(tempString);
}
}
while (count > 0); // verifica se existe mais dados para ler

string Retorno = sb.ToString();

return Retorno;
}

}

Foi dada a largada

Galera,
Este blog é para a galera de TI da Casanova e Web Prêmios compartilhar experiências de código fonte ASP.NET e C#.
Vamo que vamo.