public ComunicadoRTF ParseComunicadoFromDoc(string textExtructure) { ComunicadoRTF c = new ComunicadoRTF(); textExtructure = textExtructure .Replace("\v", Environment.NewLine) .Replace("Empregado CAIXA", Environment.NewLine + "Empregado CAIXA") .Replace("Empregado FUNCEF", Environment.NewLine + "Empregado FUNCEF") .Replace("Nome do(a) Agente de Relacionamento", Environment.NewLine + "Nome do(a) Agente de Relacionamento") .Replace("Data do Comunicado", Environment.NewLine + "Data do Comunicado") .Replace("Certificado(s) / Bilhete(s)", Environment.NewLine + "Certificado(s) / Bilhete(s)") .Replace("6.2. Consórcio Prestamista Produto", Environment.NewLine + "6.2. Consórcio Prestamista Produto") .Replace("Data do Sinistro/Ocorrência", Environment.NewLine + "Data do Sinistro/Ocorrência") .Replace("Nome do Cônjuge ou Filho (sinistrado)", Environment.NewLine + "Nome do Cônjuge ou Filho (sinistrado)") .Replace("É OBRIGATÓRIO O PREENCHIMENTO", Environment.NewLine + "É OBRIGATÓRIO O PREENCHIMENTO") .Replace("CNPJ", Environment.NewLine + "CNPJ") .Replace("\t", " ") .Replace("E-mail ", Environment.NewLine + "E-mail ") .Replace("DDD ", Environment.NewLine + "DDD ") .Replace("Bairro Bairro", "Bairro") .Replace("Cidade Cidade", "Cidade"); var listaR = textExtructure.ToLines(); var newXml = "<xml id=\"4LIFE\"><comunicado id=\"" + DateTime.Now.Ticks.ToString() + "\">"; for (int i = 0; i < listaR.Count; i++) { var l = listaR[i]; if (l.Contains("1 - DADOS DA EMPRESA")) { newXml += "<empresa ref=\"1\">"; //var lEmpresa = listaR[i + 1] // .Replace("Nome da Empresa", "<nome>") // .Replace("CNPJ ", "</nome><cnpj>") // + "</cnpj></empresa>" // ; newXml += "<nome>" + listaR[i + 2].Trim() + "</nome><cnpj>" + listaR[i + 4].Trim() + "</cnpj></empresa>"; } if (l.Contains("2 - DADOS DO SEGURADO / PARTICIPANTE / CONSORCIADO")) { newXml += "<segurado ref=\"2\">"; var lSegurado = "<nome>" + listaR[i + 2].Replace("CPF", "</nome>"); var cpf = "<cpf>" + listaR[i + 3].Replace(" Data Nascimento", "").Trim() + " </cpf>"; var nascimento = "<nascimento>" + listaR[i + 4].Replace("Sexo", "").Trim() + "</nascimento>"; var sexo = "<sexo>" + listaR[i + 5].Trim() + "</sexo>"; newXml += lSegurado + cpf + nascimento + sexo + "</segurado>"; } if (l.Contains("3 - DADOS DO COMUNICANTE")) { newXml += "<comunicante ref=\"3\">"; var tipoComunicante = "<tipo>" + listaR[i + 2].Replace("Matrícula", "").Trim() + "</tipo>"; var matricula = "<matricula>" + listaR[i + 3].Replace("Nome", "").Trim() + "</matricula>"; var nomeComunicante = "<nome>" + listaR[i + 4].Replace("DDD", "").Trim() + "</nome>"; var foneddd = "<foneddd>" + listaR[i + 5].Replace("Telefone", "").Trim() + "</foneddd>"; var fonenum = "<fonenum>" + listaR[i + 6].Replace("Telefone", "").Trim() + "</fonenum>"; newXml += tipoComunicante + matricula + nomeComunicante + foneddd + fonenum + "</comunicante>"; } if (l.Contains("4 - DADOS DO RECLAMANTE")) { newXml += "<reclamante ref=\"4\">"; var reclamante = "<nome>" + listaR[i + 2].Replace("Nome ", "").Replace("CPF", "").Trim() + "</nome>"; var pCPF = "<cpf>" + listaR[i + 3].Replace("Grau de Parentesco", "").Trim() + "</cpf>"; var parentesco = "<parentesco>" + listaR[i + 4].Replace("E-mail", "").Trim() + "</parentesco>"; var emailpes = "<emailpes>" + listaR[i + 5].Replace("E-mail", "").Trim() + "</emailpes>"; var emailcom = "<emailcom>" + listaR[i + 6].Replace("Endereço", "").Trim() + "</emailcom>"; var endereco = "<endereco>" + listaR[i + 7].Replace("Bairro", "").Trim() + "</endereco>"; var bairro = "<bairro>" + listaR[i + 8].Replace("Cidade", "").Trim() + "</bairro>"; var cidade = "<cidade>" + listaR[i + 9].Replace("CEP", "").Trim() + "</cidade>"; var cep = "<cep>" + listaR[i + 10].Replace("UF", "").Trim() + "</cep>"; var uf = "<uf>" + listaR[i + 12].Replace("DDD", "").Trim() + "</uf>"; var foneresddd = "<foneresddd>" + listaR[i + 13].Replace("Telefone Residencial", "").Trim() + "</foneresddd>"; var fonteresnum = "<fonteresnum>" + listaR[i + 14].Replace("DDD", "").Trim() + "</fonteresnum>"; var fonecomddd = "<fonecomddd>" + listaR[i + 15].Replace("Telefone Comercial", "").Trim() + "</fonecomddd>"; var fonecomnum = "<fonecomnum>" + listaR[i + 16].Replace("DDD", "").Trim() + "</fonecomnum>"; var fonecelddd = "<fonecelddd>" + listaR[i + 17].Replace("Telefone Celular", "").Trim() + "</fonecelddd>"; var fonecelnum = "<fonecelnum>" + listaR[i + 18].Replace("DDD", "").Trim() + "</fonecelnum>"; newXml += reclamante + pCPF + parentesco + emailpes + emailcom + endereco + bairro + cidade + cep + uf + foneresddd + fonteresnum + fonecomddd + fonecomnum + fonecelddd + fonecelnum + "</reclamante>"; } if (l.Contains("5 - DADOS DO SINISTRO")) { newXml += "<sinistro ref=\"5\">"; var codcobertura = "<codcobertura>" + listaR[i + 2].Replace("Seguro AUTO Fácil - 24 Horas", "").Trim() + "</codcobertura>"; var cobertura = "<cobertura>" + listaR[i + 2].Replace("Seguro AUTO Fácil - 24 Horas", "").Trim() + "</cobertura>"; var dataacidente = "<dataacidente>" + listaR[i + 4].Replace("Data do Acidente", "").Trim() + "</dataacidente>"; var datasinistro = "<datasinistro>" + listaR[i + 6].Trim() + "</datasinistro>"; var conjugeoufilho = "<conjugeoufilho>" + listaR[i + 8].Replace("CPF", "").Trim() + "</conjugeoufilho>"; var conjugeoufilhocpf = "<cpf>" + listaR[i + 9].Replace("Data de Nascimento", "").Trim() + "</cpf>"; var nascimento = "<nascimento>" + listaR[i + 10].Replace("Histórico do Sinistro (BREVE RELATO)", "").Trim() + "</nascimento>"; var relato = "<relato>" + listaR[i + 11].Replace("Histórico do Sinistro (BREVE RELATO)", "").Trim() + "</relato>"; var empregadocaixa = "<empregadocaixa>" + listaR[i + 13].Trim() + "</empregadocaixa>"; var empregadofuncef = "<empregadofuncef>" + listaR[i + 15].Trim() + "</empregadofuncef>"; newXml += codcobertura + cobertura + dataacidente + datasinistro + conjugeoufilho + conjugeoufilhocpf + nascimento + relato + empregadocaixa + empregadofuncef + "</sinistro>"; } if (l.Contains("6 - DADOS DO PRODUTO/CONTRATO")) { // newXml += "<produtos ref=\"6\">"; var produtonome = "<produtonome>" + listaR[i + 2].Trim() + "</produtonome>"; var certificado = "<certificados><certificado>" + listaR[i + 4].Replace("6.2. Consórcio Prestamista Produto", "").Trim() + "</certificado></certificados>"; var produtoCons = "<produto><produtonome /><consorcios><consorcio grupo=\"\" cota=\"\" /></consorcios></produto><produto><produtonome /><consorcios><consorcio grupo=\"\" cota=\"\" /></consorcios></produto><produto><produtonome /><certificados><certificado /></certificados></produto><produto><produtonome /><certificados><certificado /></certificados></produto>"; var contrato = "<contrato ref=\"7\"><numero /><adesao /><cartacredito /><prazo /><consorcio grupo=\"\" cota=\"\" /><enderecoimovel /><bairro /><cidade /><cep /><uf /><mesanori /><danosmateriais><pontorefimovel /><horariovisita /><fonecontato /><enderecoalternativoexiste /><enderecoalternativo /><valorindenizacao /><localchaves /><instututofiliacao /></danosmateriais></contrato>"; newXml += "<produtos ref=\"6\"><produto>" + produtonome + certificado + "</produto>" + produtoCons + "</produtos>" + contrato; } if (l.Contains("9. FINALIZAÇÃO DO COMUNICADO")) { newXml += "<finalizacao ref=\"8\">"; var datacomunicado = "<datacomunicado>" + listaR[i + 3].Trim() + "</datacomunicado>"; var agente = "<nomeagenterelacionamento>" + listaR[i + 5].Trim() + "</nomeagenterelacionamento>"; newXml += datacomunicado + agente + "</finalizacao>"; } } const string reduceMultiSpace = @"[ ]{2,}"; var line = Regex.Replace(newXml.Replace("\t", " "), reduceMultiSpace, " "); newXml = line + "</comunicado></xml>"; var b = DeserializeFromXmlString <ComunicadoRTFXML>(newXml); c = (ComunicadoRTF)b; c.Comunicado.Sinistro.Cobertura = c.Comunicado.Sinistro.Codcobertura; c.FormatoDiferente = true; return(c); }
public static ComunicadoRTF ParseComunicadoFromText(string textExtructure) { ComunicadoRTF c = new ComunicadoRTF(); textExtructure = textExtructure .Replace("E-mail ", Environment.NewLine + "E-mail ") .Replace("DDD ", Environment.NewLine + "DDD ") .Replace("Bairro Bairro", "Bairro") .Replace("Cidade Cidade", "Cidade"); var listaR = textExtructure.ToLines(); var newXml = "<xml id=\"4LIFE\"><comunicado id=\"" + DateTime.Now.Ticks.ToString() + "\">"; for (int i = 0; i < listaR.Count; i++) { var l = listaR[i]; if (l.Contains("1 - DADOS DA EMPRESA ")) { newXml += "<empresa ref=\"1\">"; var lEmpresa = listaR[i + 1] .Replace("Nome da Empresa", "<nome>") .Replace("CNPJ ", "</nome><cnpj>") + "</cnpj></empresa>" ; newXml += lEmpresa; } if (l.Contains("2 - DADOS DO SEGURADO / PARTICIPANTE / CONSORCIADO")) { newXml += "<segurado ref=\"2\">"; var lSegurado = listaR[i + 1] .Replace("Nome ", "<nome>") .Replace("CPF ", "</nome><cpf>"); var linhaNasc = listaR[i + 2]; if (listaR[i + 1].Contains("Data Nasciment")) { linhaNasc = lSegurado; lSegurado = ""; } var lSegurado2 = linhaNasc .Replace("Data Nascimento ", "</cpf><nascimento>") .Replace("Sexo ", "</nascimento><sexo>") + "</sexo></segurado>" ; newXml += lSegurado + lSegurado2; } if (l.Contains("3 - DADOS DO COMUNICANTE ")) { newXml += "<comunicante ref=\"3\">"; var lEmpresa = listaR[i + 1] .Replace("Comunicante é ", "<tipo>") .Replace("Matrícula ", "</tipo><matricula>"); var lNomeCom = listaR[i + 2] .Replace("Nome ", "</matricula><nome>"); var lTelefone = listaR[i + 3] .Replace("DDD ", "</nome><foneddd>") .Replace("Telefone ", "</foneddd><fonenum>") + "</fonenum></comunicante>" ; newXml += lEmpresa + lNomeCom + lTelefone; } if (l.Contains("4 - DADOS DO RECLAMANTE ")) { newXml += "<reclamante ref=\"4\">"; var lReclamante = listaR[i + 1] .Replace("Nome ", "<nome>") .Replace("CPF ", "</nome><cpf>"); var lParentesco = listaR[i + 2] .Replace("Grau de Parentesco ", "</cpf><parentesco>"); var lDadosEmailPes = listaR[i + 4] .Replace("E-mail ", "</parentesco><emailpes>"); var lDadosEmailcom = listaR[i + 5] .Replace("E-mail ", "</emailpes><emailcom>"); var lDadosEndereco = listaR[i + 6] .Replace("Endereço ", "</emailcom><endereco>") .Replace("Bairro ", "</endereco><bairro>") .Replace("Cidade ", "</bairro><cidade>") .Replace("CEP ", "</cidade><cep>"); var lDadosEndereco2 = listaR[i + 8] .Replace("UF ", "</cep><uf>"); var lDadosEndereco3 = listaR[i + 9] .Replace("DDD ", "</uf><foneresddd>") .Replace("Telefone Residencial ", "</foneresddd><fonteresnum>"); var lDadosEndereco4 = listaR[i + 10] .Replace("DDD ", "</fonteresnum><fonecomddd>") .Replace("Telefone Comercial ", "</fonecomddd><fonecomnum>"); var lDadosEndereco5 = listaR[i + 11] .Replace("DDD ", "</fonecomnum><fonecelddd>") .Replace("Telefone Celular ", "</fonecelddd><fonecelnum>") + "</fonecelnum></reclamante>" ; newXml += lReclamante + lParentesco + lDadosEmailPes + lDadosEmailcom + lDadosEndereco + lDadosEndereco2 + lDadosEndereco3 + lDadosEndereco4 + lDadosEndereco5; } if (l.Contains("5 - DADOS DO SINISTRO ")) { newXml += "<sinistro ref=\"5\">"; var lSinistro = listaR[i + 1] .Replace("Cobertura Pleiteada ", "<codcobertura>")//") .Replace("Seguro AUTO Fácil - 24 Horas ", "</codcobertura><cobertura></cobertura><outrosinistro />") .Replace("Data do Acidente ", "<dataacidente>") .Replace("Data do Sinistro/Ocorrência ", "</dataacidente><datasinistro>"); var lSinistro2 = listaR[i + 2] .Replace("Nome do Cônjuge ou Filho (sinistrado) ", "</datasinistro><conjugeoufilho>") .Replace("CPF ", "</conjugeoufilho><cpf>") .Replace("Data de Nascimento ", "</cpf><nascimento>"); var lSinistro3 = listaR[i + 3] .Replace("Histórico do Sinistro (BREVE RELATO) ", "</nascimento><relato>"); var lSinistro4 = listaR[i + 4] .Replace("Empregado CAIXA ", "</relato><empregadocaixa>") .Replace("Empregado FUNCEF ", "</empregadocaixa><empregadofuncef>") + "</empregadofuncef></sinistro>" ; newXml += lSinistro + lSinistro2 + lSinistro3 + lSinistro4; } if (l.Contains("6 - DADOS DO PRODUTO/CONTRATO ")) { newXml += "<produtos ref=\"6\"><produto>"; var lProduto = listaR[i + 2] .Replace("Produto ", "<produtonome>") .Replace("Certificado(s) / Bilhete(s) ", "</produtonome><certificados><certificado>") + "</certificado> </certificados> </produto> <produto> <produtonome /> <consorcios> <consorcio grupo=\"\" cota=\"\" /> </consorcios> </produto> <produto> <produtonome /> <consorcios> <consorcio grupo=\"\" cota=\"\" /> </consorcios> </produto> <produto> <produtonome /> <certificados> <certificado /> </certificados> </produto> <produto> <produtonome /> <certificados> <certificado /> </certificados> </produto> </produtos><contrato ref=\"7\"> <numero /> <adesao /> <cartacredito /> <prazo /> <consorcio grupo=\"\" cota=\"\" /> <enderecoimovel /> <bairro /> <cidade /> <cep /> <uf /> <mesanori /> <danosmateriais> <pontorefimovel /> <horariovisita /> <fonecontato /> <enderecoalternativoexiste /> <enderecoalternativo /> <valorindenizacao /> <localchaves /> <instututofiliacao /> </danosmateriais> </contrato>" ; newXml += lProduto; } if (l.Contains("9. FINALIZAÇÃO DO COMUNICADO ")) { newXml += "<finalizacao ref=\"8\">"; var lFinal = listaR[i + 2] .Replace("Data do Comunicado ", "<datacomunicado>") .Replace("Nome do(a) Agente de Relacionamento ", "</datacomunicado><nomeagenterelacionamento>") + "</nomeagenterelacionamento></finalizacao>" ; newXml += lFinal; } } const string reduceMultiSpace = @"[ ]{2,}"; var line = Regex.Replace(newXml.Replace("\t", " "), reduceMultiSpace, " "); newXml = line + "</comunicado></xml>"; var b = DeserializeFromXmlString <ComunicadoRTFXML>(newXml); c = (ComunicadoRTF)b; c.Comunicado.Sinistro.Cobertura = c.Comunicado.Sinistro.Codcobertura; c.FormatoDiferente = true; return(c); }
public ComunicadoRTF HtmlToComunicado(string htmlExtructure) { string dsStatus = string.Empty; string dsXl = ""; ComunicadoRTF c = new ComunicadoRTF(); try { if (RTFUtil.IsRichText(htmlExtructure)) { var textExtructure = RTFUtil.StripRTF(htmlExtructure); return(ParseComunicadoFromText(textExtructure)); } var nTexto = htmlExtructure .Replace("<xml>", Environment.NewLine + "<xml>") .Replace("</xml>", "</xml>" + Environment.NewLine); //nTexto = TrimStartZ(nTexto, "<xml>"); var linhas = nTexto.ToLines(); for (int i = 0; i < linhas.Count; i++) { var linha = linhas[i]; if (linha.Contains("<xml>")) { dsXl = ""; var linhaEnd = "</xml>"; var nl = linha; int conta = i; while (nl != linhaEnd) { nl = linhas[conta]; dsXl += nl; conta++; } // break; } } bool completaXml = false; if (nTexto.Contains("<xml id=") || nTexto.Contains("4LIFE")) { HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(htmlExtructure); var noxml = doc.DocumentNode.SelectNodes("/html[1]/body[1]/xml"); dsXl = noxml[0].InnerHtml; completaXml = true; } if (completaXml) { c = (ComunicadoRTF)DeserializeFromXmlString <ComunicadoRTFXML>("<xml id=\"4LIFE\">" + dsXl + "</xml>"); } else { c = (ComunicadoRTF)DeserializeFromXmlString <ComunicadoRTFXML>(dsXl); } } catch (Exception ex) { return(new ComunicadoRTF { Id = ex.Message, FormatoInvalido = true, FormatoDiferente = true }); // throw; } return(c); }