private void MontaXMLParaProcessamentoDaRevistaAtravesDoTXT(string pastaDeArmazenamentoDasRevistas, IRevistaDeMarcas revistaDeMarcas) { Util.CrieDiretorio(pastaDeArmazenamentoDasRevistas); var caminhoArquivoTxt = Path.Combine(pastaDeArmazenamentoDasRevistas, revistaDeMarcas.NumeroRevistaMarcas + revistaDeMarcas.ExtensaoArquivo); using (var arquivo = new StreamReader(caminhoArquivoTxt)) { TradutorDeRevistaTxtParaRevistaXml.TraduzaRevistaDeMarcas(DateTime.Now, revistaDeMarcas.NumeroRevistaMarcas.ToString(), arquivo, pastaDeArmazenamentoDasRevistas); arquivo.Close(); } //Directory.Delete(caminhoArquivoTxt); }
public XmlDocument ObtenhaXmlDaRevistaParaProcessamento(string pastaDeArmazenamentoDasRevistas, IRevistaDeMarcas revistaDeMarcas) { Util.CrieDiretorio(pastaDeArmazenamentoDasRevistas); // arquivo txt para xml if (revistaDeMarcas.ExtensaoArquivo.ToUpper().Equals(".TXT")) { MontaXMLParaProcessamentoDaRevistaAtravesDoTXT(pastaDeArmazenamentoDasRevistas, revistaDeMarcas); revistaDeMarcas.ExtensaoArquivo = ".xml"; } var caminhoArquivo = Path.Combine(pastaDeArmazenamentoDasRevistas, revistaDeMarcas.NumeroRevistaMarcas + revistaDeMarcas.ExtensaoArquivo); var xmlRevista = new XmlDocument(); xmlRevista.Load(caminhoArquivo); return xmlRevista; }
private IList<IRevistaDeMarcas> LerRevistaXMLParaProcessosExistentes(IRevistaDeMarcas revistaDeMarcas, XmlDocument revistaXml, bool ehLeitura) { var numeroRevista = string.Empty; var dataRevista = string.Empty; IList<IRevistaDeMarcas> listaDeProcessosDaRevistaDeMarcas = new List<IRevistaDeMarcas>(); XmlNodeList dadosRevista = revistaXml.GetElementsByTagName("revista"); for (int i = 0; i < dadosRevista.Count; i++) { numeroRevista = dadosRevista[i].Attributes.GetNamedItem("numero").Value; dataRevista = dadosRevista[i].Attributes.GetNamedItem("data").Value; } XmlNodeList xmlprocessos = revistaXml.GetElementsByTagName("processo"); foreach (XmlNode processo in xmlprocessos) { var objetoRevista = FabricaGenerica.GetInstancia().CrieObjeto<IRevistaDeMarcas>(); objetoRevista.NumeroProcessoDeMarca = Convert.ToInt64(processo.Attributes.GetNamedItem("numero").Value); if (processo.Attributes.GetNamedItem("data-deposito") != null) objetoRevista.DataDeDeposito = Convert.ToDateTime(processo.Attributes.GetNamedItem("data-deposito").Value); if (processo.Attributes.GetNamedItem("data-concessao") != null) objetoRevista.DataDeConcessao = Convert.ToDateTime(processo.Attributes.GetNamedItem("data-concessao").Value); var despachos = processo["despachos"]; if (despachos != null) { var despacho = despachos["despacho"]; if (despacho != null) { objetoRevista.CodigoDespacho = despacho.Attributes.GetNamedItem("codigo").Value; var textoDoDespacho = despacho["texto-complementar"]; objetoRevista.TextoDoDespacho = textoDoDespacho != null ? textoDoDespacho.InnerText : null; } } var apostila = processo["apostila"]; objetoRevista.Apostila = apostila != null ? apostila.InnerText : null; objetoRevista.NumeroRevistaMarcas = Convert.ToInt32(numeroRevista); objetoRevista.DataPublicacao = Convert.ToDateTime(dataRevista); objetoRevista.DataProcessamento = DateTime.Now; objetoRevista.Processada = revistaDeMarcas.Processada; objetoRevista.ExtensaoArquivo = revistaDeMarcas.ExtensaoArquivo; listaDeProcessosDaRevistaDeMarcas.Add(objetoRevista); } IList<IRevistaDeMarcas> listaDeDadosDaRevistaASerSalvo = new List<IRevistaDeMarcas>(); // Atualizar processos apos a leitura if (listaDeProcessosDaRevistaDeMarcas.Count > 0) { // verifica se o processo está cadastrado na base IList<long> listaDeNumerosDeProcessosCadastrados = new List<long>(); using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeProcessoDeMarca>()) { listaDeNumerosDeProcessosCadastrados = servico.ObtenhaTodosNumerosDeProcessosAtivosCadastrados(); foreach (var processoDaRevista in listaDeProcessosDaRevistaDeMarcas) { if (listaDeNumerosDeProcessosCadastrados.Contains(processoDaRevista.NumeroProcessoDeMarca)) { var processoDeMarca = servico.ObtenhaProcessoDeMarcaPeloNumero(processoDaRevista.NumeroProcessoDeMarca); processoDaRevista.IdRevistaMarcas = GeradorDeID.getInstancia().getProximoID(); if (!string.IsNullOrEmpty(processoDaRevista.CodigoDespacho)) if (processoDeMarca.Despacho != null && !processoDeMarca.Despacho.CodigoDespacho.Equals(processoDaRevista.CodigoDespacho)) AtualizeDespachoNoProcesso(processoDaRevista.CodigoDespacho, processoDeMarca); if (!string.IsNullOrEmpty(processoDaRevista.Apostila)) processoDeMarca.Apostila = processoDaRevista.Apostila; if (processoDaRevista.DataDeDeposito != null) processoDeMarca.DataDoDeposito = processoDaRevista.DataDeDeposito; if (processoDaRevista.DataDeConcessao != null) processoDeMarca.DataDeConcessao = processoDaRevista.DataDeConcessao; if (!string.IsNullOrEmpty(processoDaRevista.TextoDoDespacho)) processoDeMarca.TextoComplementarDoDespacho = processoDaRevista.TextoDoDespacho; listaDeDadosDaRevistaASerSalvo.Add(processoDaRevista); if (!ehLeitura) servico.AtualizeProcessoAposLeituraDaRevista(processoDeMarca); } } } } return listaDeDadosDaRevistaASerSalvo; }
public IList<IRevistaDeMarcas> ObtenhaProcessosExistentesDeAcordoComARevistaXml(string pastaDeArmazenamentoDasRevistas, IRevistaDeMarcas revistaDeMarcas, XmlDocument revistaXml, bool ehLeitura) { IList<IRevistaDeMarcas> listaDeProcessosExistentesNaRevista = new List<IRevistaDeMarcas>(); // arquivo txt para xml if (revistaDeMarcas.ExtensaoArquivo.ToUpper().Equals(".TXT")) revistaDeMarcas.ExtensaoArquivo = ".xml"; listaDeProcessosExistentesNaRevista = LerRevistaXMLParaProcessosExistentes(revistaDeMarcas, revistaXml, ehLeitura); return listaDeProcessosExistentesNaRevista; }