Beispiel #1
0
        /// <summary>
        /// Processa a resposta do site da Receita Federal
        /// </summary>
        /// <param name="retorno">The retorno.</param>
        /// <exception cref="ACBrException">Erro ao processar retorno.</exception>
        private void ProcessResponse(string retorno)
        {
            var retornoRfb = new List <string>();

            try
            {
                retorno = HttpUtility.HtmlDecode(retorno);
                retorno = retorno.StripHtml().RemoveDoubleSpaces();
                retorno = retorno.Replace("\t", string.Empty);
                retornoRfb.AddText(retorno);
                retornoRfb.RemoveEmptyLines();

                CPF               = LerCampo(retornoRfb, "Nº do CPF:");
                Nome              = LerCampo(retornoRfb, "Nome:");
                DataNascimento    = LerCampo(retornoRfb, "Data Nascimento:").ToData();
                Situacao          = LerCampo(retornoRfb, "Situação Cadastral:");
                DataInscricao     = LerCampo(retornoRfb, "Data de Inscrição no CPF:").ToData();
                DigitoVerificador = LerCampo(retornoRfb, "Dígito Verificador:");
                Emissao           = LerCampo(retornoRfb, "Comprovante emitido às:");
                CodCtrlControle   = LerCampo(retornoRfb, "Código de controle do comprovante:");
            }
            catch (Exception exception)
            {
                throw new ACBrException(exception, "Erro ao processar retorno.");
            }

            if (!Nome.IsEmpty())
            {
                return;
            }

            var erro = LerCampo(retornoRfb, "Data de nascimento informada");

            Guard.Against <ACBrException>(!erro.IsEmpty(), "Data de nascimento divergente da base da Receita Federal.");

            throw new ACBrException("Não foi possível obter os dados.");
        }