//[return: XmlRoot(ElementName = "testeteste")] public Entidades.Cadastral.SISCOM.Response PesquisaPF(string loginUsuario, string senhaUsuario, string numeroCPF) { try { //Limpando pontos, barras e espaços do CPF numeroCPF = numeroCPF.Replace(".", "").Replace(".", "").Replace("-", "").Replace("/", ""); numeroCPF = numeroCPF.Trim(); numeroCPF = numeroCPF.PadLeft(11, '0'); Entidades.Cadastral.SISCOM.Response retResponse = new Entidades.Cadastral.SISCOM.Response(); #region Parametros de Entrada retResponse.Input = new List <Entidades.Cadastral.SISCOM.InputItem>(); //retResponse.Input.Add(new Entidades.Cadastral.SISCOM.InputItem() { Key = "loginUsuario", Value = loginUsuario }); //retResponse.Input.Add(new Entidades.Cadastral.SISCOM.InputItem() { Key = "senhaUsuario", Value = senhaUsuario }); retResponse.Input.Add(new Entidades.Cadastral.SISCOM.InputItem() { Key = "CPF", Value = numeroCPF }); #endregion #region Controle de Erros if (loginUsuario.Trim().Length == 0) { retResponse.ResponseError.ErrorCode = "400"; retResponse.ResponseError.Message = "HTTP/1.1 400 Bad Request"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "400"; Erro.FieldName = "loginUsuario"; Erro.Message = retResponse.ResponseError.Message; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.ResponseError.Errors.Add(Erro); retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 400; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = "O login nao foi informado"; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; } if (senhaUsuario.Trim().Length == 0) { retResponse.ResponseError.ErrorCode = "400"; retResponse.ResponseError.Message = "HTTP/1.1 400 Bad Request"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "400"; Erro.FieldName = "senhaUsuario"; Erro.Message = retResponse.ResponseError.Message; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.ResponseError.Errors.Add(Erro); retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 400; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = "A senha nao foi informada"; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; } if (numeroCPF.Trim().Length == 0) { retResponse.ResponseError.ErrorCode = "400"; retResponse.ResponseError.Message = "HTTP/1.1 400 Bad Request"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "400"; Erro.FieldName = "numeroCPF"; Erro.Message = retResponse.ResponseError.Message; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.ResponseError.Errors.Add(Erro); retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 400; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = "O CPF nao foi informado"; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; } //Validando CPF if (!numeroCPF.Equals("00000000000") && (!Util.Format.ValidaCPFCNPJ(numeroCPF, false) || numeroCPF.Length != 11)) { retResponse.ResponseError.ErrorCode = "400"; retResponse.ResponseError.Message = "HTTP/1.1 400 Bad Request"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "400"; Erro.FieldName = "numeroCPF"; Erro.Message = retResponse.ResponseError.Message; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.ResponseError.Errors.Add(Erro); retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 400; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = "CPF Invalido"; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; } if (retResponse.ResponseError.Errors != null && retResponse.ResponseError.Errors.Count > 0) { return(retResponse); } #endregion string NomeInternoProduto = "WEBSERVICE SISCOM PESQUISA PF"; if (Autenticacao(loginUsuario, senhaUsuario)) { //Verificando inicialmente se o usuário tem permissão ao produto List <Entidades.Produto> listProd = new List <Entidades.Produto>(); listProd = ListarProdutoSolicitadoByUsuario(((Entidades.Usuario)Session["ws_siscom_acesso"]).IdUsuario, NomeInternoProduto); if (listProd == null || listProd.Count == 0) { retResponse.ResponseError.ErrorCode = "401"; retResponse.ResponseError.Message = "HTTP/1.1 401 Unauthorized"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "401"; Erro.FieldName = ""; Erro.Message = retResponse.ResponseError.Message; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.ResponseError.Errors.Add(Erro); retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 401; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = "Voce nao tem permissao para utilizar este produto"; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; return(retResponse); } else { if (numeroCPF.Trim().Equals("00000000000")) { return(TestesDeIntegracao()); } else { Negocios.Cadastral.WS.SISCOM n = new Negocios.Cadastral.WS.SISCOM(); Entidades.Cadastral.SISCOM.Response retorno = new Entidades.Cadastral.SISCOM.Response(); retorno = n.SISCOMPesquisaPF(numeroCPF); if (retorno.Output.DadosCadastrais.Nome.Trim().Equals("") && retorno.Output.Emails.Count == 0 && retorno.Output.Enderecos.Count == 0 && retorno.Output.Telefones.Count == 0) { string codigoItemProduto = listProd.FirstOrDefault().CodigoProduto; Entidades.HistoricoPesquisa hist = SalvarHistoricoPesquisa("N", codigoItemProduto, "", numeroCPF, "CPF"); retorno.Input = retResponse.Input; retorno.ResponseError = retResponse.ResponseError; retorno.Status = new Entidades.Cadastral.SISCOM.Status(); retorno.Status.Code = 204; retorno.Status.DateTime = DataBR; retorno.Status.Detail = "SOLICITACAO PROCESSADA COM SUCESSO"; retorno.Status.Message = "No Content"; retorno.Status.Source = ((Entidades.Usuario)Session["ws_siscom_acesso"]).Cliente.NomeFantasia; retorno.Status.Type = "Consulta Siscom PF"; retorno.Status.Protocol = hist.ProtocoloRetorno; var xns = new XmlSerializerNamespaces(); xns.Add(string.Empty, string.Empty); var xs = new XmlSerializer(retorno.GetType()); var xml = new StringWriter(); xs.Serialize(xml, retorno, xns); SalvarHistoricoFornecedor("N", hist.IdHistoricoConsulta, xml.ToString(), NomeInternoProduto, "DNA"); } else { string codigoItemProduto = listProd.FirstOrDefault().CodigoItemProduto; Entidades.HistoricoPesquisa hist = SalvarHistoricoPesquisa("S", codigoItemProduto, "", numeroCPF, "CPF"); retorno.Input = retResponse.Input; retorno.ResponseError = retResponse.ResponseError; retorno.Status = new Entidades.Cadastral.SISCOM.Status(); retorno.Status.Code = 200; retorno.Status.DateTime = DataBR; retorno.Status.Detail = "SOLICITACAO PROCESSADA COM SUCESSO"; retorno.Status.Message = "OK"; retorno.Status.Source = ((Entidades.Usuario)Session["ws_siscom_acesso"]).Cliente.NomeFantasia; retorno.Status.Type = "Consulta Siscom PF"; retorno.Status.Protocol = hist.ProtocoloRetorno; var xns = new XmlSerializerNamespaces(); xns.Add(string.Empty, string.Empty); var xs = new XmlSerializer(retorno.GetType()); var xml = new StringWriter(); xs.Serialize(xml, retorno, xns); SalvarHistoricoFornecedor("S", hist.IdHistoricoConsulta, xml.ToString(), NomeInternoProduto, "DNA"); } return(retorno); } } } else { retResponse.ResponseError.ErrorCode = "401"; retResponse.ResponseError.Message = "HTTP/1.1 401 Unauthorized"; retResponse.ResponseError.StackTrace = ""; Entidades.Cadastral.SISCOM.Error Erro = new Entidades.Cadastral.SISCOM.Error(); Erro.ErrorCode = "401"; Erro.FieldName = ""; Erro.Message = "O LOGIN OU A SENHA INSERIDOS ESTAO INCORRETOS."; if (retResponse.ResponseError.Errors == null) { retResponse.ResponseError.Errors = new List <Entidades.Cadastral.SISCOM.Error>(); } retResponse.Status = new Entidades.Cadastral.SISCOM.Status(); retResponse.Status.Code = 401; retResponse.Status.DateTime = DataBR; retResponse.Status.Detail = string.Empty; retResponse.Status.Message = Erro.Message; retResponse.Status.Source = string.Empty; retResponse.Status.Type = string.Empty; retResponse.ResponseError.Errors.Add(Erro); return(retResponse); } } catch (Exception ex) { throw ex; } }
private Entidades.Cadastral.SISCOM.Response TestesDeIntegracao() { Entidades.Cadastral.SISCOM.Response ret = new Entidades.Cadastral.SISCOM.Response(); ret.Input.Add(new Entidades.Cadastral.SISCOM.InputItem() { Key = "CPF", Value = "00000000000" }); ret.Output.DadosCadastrais.CPF = "00000000000"; ret.Output.DadosCadastrais.Nome = "MARIA DA SILVA"; ret.Output.DadosCadastrais.RG = "123456789"; ret.Output.Emails.Add(new Entidades.Cadastral.SISCOM.Email() { Endereco = "*****@*****.**" }); ret.Output.Emails.Add(new Entidades.Cadastral.SISCOM.Email() { Endereco = "*****@*****.**" }); ret.Output.Emails.Add(new Entidades.Cadastral.SISCOM.Email() { Endereco = "*****@*****.**" }); ret.Output.Enderecos.Add(new Entidades.Cadastral.SISCOM.Endereco() { Bairro = "JARDIM SAO PAULO", CEP = "01234567", Cidade = "SAO PAULO", Complemento = "Casa 02", Logradouro = "RUA JORGE GOUVEIA", Numero = "123", UF = "SP" }); ret.Output.Enderecos.Add(new Entidades.Cadastral.SISCOM.Endereco() { Bairro = "JARDIM PRIMAVERA", CEP = "12345678", Cidade = "DIADEMA", Complemento = "AP 1 B2", Logradouro = "AV CABRAL XX", Numero = "10", UF = "SP" }); ret.Output.Enderecos.Add(new Entidades.Cadastral.SISCOM.Endereco() { Bairro = "PARQUE SAO JUDAS TADEU", CEP = "23456789", Cidade = "ITU", Complemento = "", Logradouro = "RUA PRACA DA ARVORE", Numero = "86", UF = "SP" }); ret.Output.Enderecos.Add(new Entidades.Cadastral.SISCOM.Endereco() { Bairro = "VILA CARIOCA", CEP = "34567890", Cidade = "SAO BERNARDO DO CAMPO", Complemento = "Casa 1", Logradouro = "BECO MARIA BONITA", Numero = "11203", UF = "SP" }); ret.Output.Telefones.Add(new Entidades.Cadastral.SISCOM.Telefone() { DDD = 11, Numero = 33335555 }); ret.Output.Telefones.Add(new Entidades.Cadastral.SISCOM.Telefone() { DDD = 13, Numero = 23556698 }); ret.Output.Telefones.Add(new Entidades.Cadastral.SISCOM.Telefone() { DDD = 11, Numero = 987156630 }); ret.Status.Code = 200; ret.Status.DateTime = DateTime.Now; ret.Status.Detail = "SOLICITACAO PROCESSADA COM SUCESSO"; ret.Status.Message = "OK"; ret.Status.Protocol = Guid.NewGuid().ToString(); ret.Status.Source = "DNA CONSULTORIA"; ret.Status.Type = "Consulta Siscom PF"; return(ret); }
public Entidades.Cadastral.SISCOM.Response SISCOMPesquisaPF(string CPF) { try { Entidades.Cadastral.SISCOM.Response retResponse = new Entidades.Cadastral.SISCOM.Response(); DataSet ds = new DataSet(); Dados.Cadastral.WS.SISCOM neg = new Dados.Cadastral.WS.SISCOM(); neg.PesquisaPF(CPF, ref ds); if (ds != null && ds.Tables.Count > 0) { // Tabela 1 -> Dados Cadastrais foreach (DataRow dr in ds.Tables[0].Rows) { retResponse.Output.DadosCadastrais = new Entidades.Cadastral.SISCOM.DadosCadastrais(); retResponse.Output.DadosCadastrais.CPF = dr["CPF"].ToString(); retResponse.Output.DadosCadastrais.Nome = dr["NOME"].ToString(); retResponse.Output.DadosCadastrais.RG = dr["RG"].ToString(); } // Tabela 2 -> Dados de Telefones foreach (DataRow dr in ds.Tables[1].Rows) { if (retResponse.Output.Telefones == null) { retResponse.Output.Telefones = new List <Entidades.Cadastral.SISCOM.Telefone>(); } Entidades.Cadastral.SISCOM.Telefone tel = new Entidades.Cadastral.SISCOM.Telefone(); if (dr["DDD"].ToString().Trim().Equals("")) { tel.DDD = 0; tel.Numero = 0; } else { try { tel.DDD = int.Parse(dr["DDD"].ToString()); tel.Numero = int.Parse(dr["TELEFONE"].ToString()); } catch { tel.DDD = 0; tel.Numero = 0; } } retResponse.Output.Telefones.Add(tel); } // Tabela 3 -> Dados de Endereços foreach (DataRow dr in ds.Tables[2].Rows) { if (retResponse.Output.Enderecos == null) { retResponse.Output.Enderecos = new List <Entidades.Cadastral.SISCOM.Endereco>(); } Entidades.Cadastral.SISCOM.Endereco ende = new Entidades.Cadastral.SISCOM.Endereco(); ende.Logradouro = dr["LOGRADOURO"].ToString(); ende.Numero = dr["NUMERO"].ToString(); ende.Complemento = dr["COMPLEMENTO"].ToString(); ende.Bairro = dr["BAIRRO"].ToString(); ende.Cidade = dr["CIDADE"].ToString(); ende.UF = dr["UF"].ToString(); ende.CEP = dr["CEP"].ToString(); retResponse.Output.Enderecos.Add(ende); } // Tabela 4 -> Dados de Emails foreach (DataRow dr in ds.Tables[3].Rows) { if (retResponse.Output.Emails == null) { retResponse.Output.Emails = new List <Entidades.Cadastral.SISCOM.Email>(); } Entidades.Cadastral.SISCOM.Email email = new Entidades.Cadastral.SISCOM.Email(); email.Endereco = dr["EMAIL"].ToString(); retResponse.Output.Emails.Add(email); } } return(retResponse); } catch (Exception ex) { throw ex; } }