private bool GravarEnvio(XmlElement _retorno, List <string> _listaId, string _cnpj) { SCI.ESocial.IRKO.DCTF.ParametroGravarEnvio _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarEnvio(); XmlElement _status = _retorno.GetElementsByTagName("status").Cast <XmlElement>().FirstOrDefault(); _parametro.CdResposta = _status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.DescResposta = _status.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.CNPJTR = _cnpj; _parametro.Ids = _listaId.ToArray(); _parametro.ArquivoXML = _retorno.OuterXml; if (_parametro.CdResposta == "201") { XmlElement _dadosRecepcaoLote = _retorno.GetElementsByTagName("dadosRecepcaoLote").Cast <XmlElement>().FirstOrDefault(); _parametro.DhRecepcao = _dadosRecepcaoLote.GetElementsByTagName("dhRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.VersaoAplicativoRecepcao = _dadosRecepcaoLote.GetElementsByTagName("versaoAplicativoRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.ProtocoloEnvio = _dadosRecepcaoLote.GetElementsByTagName("protocoloEnvio").Cast <XmlElement>().FirstOrDefault().InnerText; } else { XmlNodeList _ocorrencias = _retorno.GetElementsByTagName("ocorrencia"); _parametro.Ocorrencias = _ocorrencias.Cast <XmlElement>().ToList() .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia { Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText , Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText , Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText }).ToArray(); } SCI.ESocial.IRKO.DCTF.Resultado _retornoIrko = wrESocial.GravarEnvio(Guid, _parametro); if (_retornoIrko.Sucesso) { return(true); } else { MessageBox.Show(_retornoIrko.Mensagem); return(false); } }
private bool GravarRetorno(XmlElement _retorno, string _protocoEnvio) { List <SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno> _parametros = new List <SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno>(); XmlElement _status = _retorno.GetElementsByTagName("status").Cast <XmlElement>().FirstOrDefault(); if (_status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText == "201") { XmlNodeList _eventos = _retorno.GetElementsByTagName("evento"); _eventos.Cast <XmlElement>().ToList().ForEach(_evento => { SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno { Id = _evento.Attributes["Id"].Value }; XmlElement _recepcao = _evento.GetElementsByTagName("recepcao").Cast <XmlElement>().FirstOrDefault(); _parametro.Protocolo = _recepcao.GetElementsByTagName("protocoloEnvioLote").Cast <XmlElement>().FirstOrDefault().InnerText; XmlElement _processamento = _evento.GetElementsByTagName("processamento").Cast <XmlElement>().FirstOrDefault(); _parametro.CdResposta = _processamento.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.DescResposta = _processamento.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.DhProcessamento = _processamento.GetElementsByTagName("dhProcessamento").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.VersaoAplicativoProcessamento = _processamento.GetElementsByTagName("versaoAppProcessamento").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.NumeroRecibo = _evento.GetElementsByTagName("nrRecibo")?.Cast <XmlElement>().FirstOrDefault()?.InnerText; _parametro.Ocorrencias = _processamento.GetElementsByTagName("ocorrencia")?.Cast <XmlElement>().ToList() .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia() { Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText , Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText , Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText }).ToArray(); _parametros.Add(_parametro); }); SCI.ESocial.IRKO.DCTF.Resultado _resultado = wrESocial.GravarRetorno(Guid, _parametros.ToArray(), _retorno.OuterXml); if (!_resultado.Sucesso) { MessageBox.Show(_resultado.Mensagem); } return(_resultado.Sucesso); } else { SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno { Protocolo = _protocoEnvio }; _parametro.CdResposta = _status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.DescResposta = _status.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText; _parametro.Ocorrencias = _status.GetElementsByTagName("ocorrencia")?.Cast <XmlElement>().ToList() .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia() { Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText , Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText , Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText }).ToArray(); _parametros.Add(_parametro); SCI.ESocial.IRKO.DCTF.Resultado _resultado = wrESocial.GravarRetorno(Guid, _parametros.ToArray(), _retorno.OuterXml); if (!_resultado.Sucesso) { MessageBox.Show(_resultado.Mensagem); } return(_resultado.Sucesso); } }