示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }