public void Verifica_Deserializacao_From_File() { var nfeSerializer = new NfeXmlSerializer(); NfeProc nfe = nfeSerializer.DeserializeFromFile <NfeProc>("NfeProc.xml"); Assert.IsTrue(nfe != null); Assert.IsTrue(nfe.Nfe != null); Debug.WriteLine(String.Format("Num Nfe.: {0}", nfe.Nfe.InfNfe.Ide.NumNf)); Debug.WriteLine(String.Format("Remetente.: {0}", nfe.Nfe.InfNfe.Emitente.Nome)); Debug.WriteLine(String.Format("Destinatário.: {0}", nfe.Nfe.InfNfe.Destinatario.Nome)); Debug.WriteLine(String.Format("Qtde. Itens.: {0}", nfe.Nfe.InfNfe.Itens.Count)); Assert.IsTrue(nfe.Nfe.InfNfe.Itens.Count > 0); foreach (var item in nfe.Nfe.InfNfe.Itens) { Debug.WriteLine(String.Format("Produto .: {0}", item.Produto.Descricao)); Debug.WriteLine(String.Format("Inf. Adicional .: {0}", item.InfAdProd)); } NotaFiscalEletronica notaFiscal = nfeSerializer.DeserializeFromFile <NotaFiscalEletronica>("Nfe.xml"); Assert.IsTrue(notaFiscal != null); }
public void Verifica_Deserializacao_From_File() { var nfeSerializer = new NfeXmlSerializer(); NfeProc nfe = nfeSerializer.DeserializeFromFile<NfeProc>("NfeProc.xml"); Assert.IsTrue(nfe != null); Assert.IsTrue(nfe.Nfe != null); Debug.WriteLine(String.Format("Num Nfe.: {0}", nfe.Nfe.InfNfe.Ide.NumNf)); Debug.WriteLine(String.Format("Remetente.: {0}", nfe.Nfe.InfNfe.Emitente.Nome)); Debug.WriteLine(String.Format("Destinatário.: {0}", nfe.Nfe.InfNfe.Destinatario.Nome)); Debug.WriteLine(String.Format("Qtde. Itens.: {0}", nfe.Nfe.InfNfe.Itens.Count)); Assert.IsTrue(nfe.Nfe.InfNfe.Itens.Count > 0); foreach (var item in nfe.Nfe.InfNfe.Itens) { Debug.WriteLine(String.Format("Produto .: {0}", item.Produto.Descricao)); Debug.WriteLine(String.Format("Inf. Adicional .: {0}", item.InfAdProd)); } NotaFiscalEletronica notaFiscal = nfeSerializer.DeserializeFromFile<NotaFiscalEletronica>("Nfe.xml"); Assert.IsTrue(notaFiscal != null); }
public void Testa_Exception_FileNotFound() { var nfeSerializer = new NfeXmlSerializer(); NfeProc nfe = nfeSerializer.DeserializeFromFile<NfeProc>("Nfe_0000.xml"); Assert.IsTrue(nfe != null); }
public void Testa_Exception_FileNotFound() { var nfeSerializer = new NfeXmlSerializer(); NfeProc nfe = nfeSerializer.DeserializeFromFile <NfeProc>("Nfe_0000.xml"); Assert.IsTrue(nfe != null); }
public void Verifica_Validacao_XSD_Tipo_NotaFiscalEletronica() { var nfeSerializer = new NfeXmlSerializer(); var nfe = nfeSerializer.DeserializeFromFile <NotaFiscalEletronica>("Nfe.xml"); var schemaFile = NfeSchemaFileResolver <NotaFiscalEletronica> .GetByNfeVersion(nfe.InfNfe.Versao); using (FileStream fs = new FileStream("Nfe.xml", FileMode.Open)) { List <string> messages = nfeSerializer.Validate(fs, schemaFile); foreach (var str in messages) { Debug.WriteLine(str); } Assert.IsTrue(messages.Count == 0); } }
public void Verifica_Validacao_XSD_Tipo_NfeProc() { var nfeSerializer_NfeProc = new NfeXmlSerializer(); var nfeproc = nfeSerializer_NfeProc.DeserializeFromFile<NfeProc>("NfeProc.xml"); var schemaFile = NfeSchemaFileResolver<NfeProc>.GetByNfeVersion(nfeproc.Versao); using (FileStream fs = new FileStream("NfeProc.xml", FileMode.Open)) { List<string> messages = nfeSerializer_NfeProc.Validate(fs, schemaFile); foreach (var str in messages) Debug.WriteLine(str); Assert.IsTrue(messages.Count == 0); } }
public List<NfeProc> GetNfeProcList(List<Stream> pStreamList) { List<NfeProc> nfeProcList = new List<NfeProc>(); if (pStreamList != null && pStreamList.Any()) { NfeXmlSerializer xmlSerializer = new NfeXmlSerializer(); pStreamList.Select(stream => stream) .ToList() .ForEach(inputStream => { NfeProc nfeProc = null; try { nfeProc = xmlSerializer.DeserializeFromStream<NfeProc>(inputStream); } catch (InvalidOperationException) { if (nfeProc == null) { try { NotaFiscalEletronica nota = xmlSerializer.DeserializeFromStream<NotaFiscalEletronica>(inputStream); nfeProc = new NfeProc { ProtNfe = new ProtNfe { InfProt = new InfProt { ChaveNFe = nota.InfNfe.Id.Replace("NFe", ""), tpAmb = nota.InfNfe.Ide.tpAmb, VerAplic = nota.InfNfe.Ide.VerProc, Motivo = "Protocolo não encontrado" } }, Nfe = nota }; } catch (InvalidOperationException) { nfeProc = new NfeProc { ProtNfe = new ProtNfe { InfProt = new InfProt { Motivo = "Falha ao processar arquivo" } } }; } } } nfeProcList.Add(nfeProc); }); } return nfeProcList; }
public List<NfeValidation> GetNfeValidationMessages(string path, List<Stream> pStreamList) { List<NfeValidation> NfeValidationList = new List<NfeValidation>(); if (pStreamList != null && pStreamList.Any()) { NfeXmlSerializer xmlSerializer = new NfeXmlSerializer(); string xsdFileName = null; List<string> validationList = null; pStreamList.Select(stream => stream) .ToList() .ForEach(inputStream => { NfeProc nfeProc = null; try { nfeProc = xmlSerializer.DeserializeFromStream<NfeProc>(inputStream); xsdFileName = NfeSchemaFileResolver<NfeProc>.GetByNfeVersion(nfeProc.Versao); var xsdFileNamePath = Path.Combine(path, xsdFileName); validationList = xmlSerializer.Validate(inputStream, xsdFileNamePath); validationList.ForEach(msg => NfeValidationList.Add(new NfeValidation { NumNf = nfeProc.Nfe.InfNfe.Ide.NumNf, Message = msg })); if (!validationList.Any()) { NfeValidationList.Add(new NfeValidation { NumNf = nfeProc.Nfe.InfNfe.Ide.NumNf, Message = "Nenhuma inconsistência encontrada" }); } } catch (InvalidOperationException) { if (nfeProc == null) { try { NotaFiscalEletronica nota = xmlSerializer.DeserializeFromStream<NotaFiscalEletronica>(inputStream); xsdFileName = NfeSchemaFileResolver<NotaFiscalEletronica>.GetByNfeVersion(nota.InfNfe.Versao); var xsdFileNamePath = Path.Combine(path, xsdFileName); validationList = xmlSerializer.Validate(inputStream, xsdFileNamePath); validationList.ForEach(msg => NfeValidationList.Add(new NfeValidation { NumNf = nota.InfNfe.Ide.NumNf, Message = msg })); if (!validationList.Any()) { NfeValidationList.Add(new NfeValidation { NumNf = nota.InfNfe.Ide.NumNf, Message = "Nenhuma inconsistência encontrada" }); } } catch (Exception e) { NfeValidationList.Add(new NfeValidation { NumNf = "", Message = e.Message }); } } } catch (Exception e) { NfeValidationList.Add(new NfeValidation { NumNf = "", Message = e.Message }); } }); } return NfeValidationList; }