Ejemplo n.º 1
0
        public async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument)
        {
            // Recupera o arquivo anexado pelo usuário
            var activity = argument.GetAwaiter().GetResult().Attachments?.FirstOrDefault(a => a.ContentType.Contains("image"));

            // Retorna o o documento IRRF Processado
            var retornoOcr = await _ocr.GetDocumentData(activity.ContentUrl);

            var message = await argument;

            await context.PostAsync(retornoOcr);

            context.Wait(MessageReceivedAsync);
        }
Ejemplo n.º 2
0
        public FluxoMensagemDTO RecuperaFluxoDeclSimplificada(FluxoMensagemDTO tipoFase, string path)
        {
            if (!tipoFase.TipoFasePasso_1.HasValue)
            {
                tipoFase.Texto           = MensagemPadrao();
                tipoFase.TipoFaseBot     = TipoFaseBot.FluxoDeclaracaoSimplificada;
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_5;
                return(tipoFase);
            }

            switch (tipoFase.TipoFasePasso_1)
            {
            case TipoFasePassoAhPasso.Fase_1:
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_2;
                tipoFase.Texto           = "Então, tira uma foto dele ou me manda uma imagem dele para eu ver se te encontro";
                break;

            case TipoFasePassoAhPasso.Fase_2:
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_3;
                var texto = _ocrService.GetDocumentData(path).GetAwaiter().GetResult();
                tipoFase.Texto = texto;    // Achei você ...
                break;

            case TipoFasePassoAhPasso.Fase_3:
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_4;
                tipoFase.Texto           = "Você mudou de endereço ou quer atualizar suas informações cadastrais ? ";
                break;

            case TipoFasePassoAhPasso.Fase_4:
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_6;
                tipoFase.Texto           = "Ok. Posso mandar sua declaração ? ";
                break;

            case TipoFasePassoAhPasso.Fase_5:
                tipoFase.Texto           = "Você possui seu informe de rendimentos desse ano ?";
                tipoFase.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_1;
                break;

            case TipoFasePassoAhPasso.Fase_6:
                tipoFase.TipoFaseBot = TipoFaseBot.FluxoFinalizacao;
                tipoFase.Texto       = "Sua declaração foi enviada com sucesso. Obrigado por colaborar ..";
                break;

            default:
                break;
            }

            return(tipoFase);
        }
Ejemplo n.º 3
0
        private async Task <FluxoMensagemDTO> RecuperaFluxoRetorno(FluxoMensagemDTO fluxoAtual, Activity activity)
        {
            var fluxoRetorno = fluxoAtual;

            switch (fluxoAtual.TipoFaseBot)
            {
            case TipoFaseBot.Saudacao:
                fluxoRetorno = new FluxoMensagemDTO
                {
                    Texto       = _saudacaoService.RecuperaSaudacaoSegundaria().Texto,
                    TipoFaseBot = fluxoAtual.TipoFaseBot
                };

                break;

            case TipoFaseBot.FluxoDuvidas:
                fluxoRetorno = _fluxoDuvidasService.RecuperaPassoAhPassoDuvida(fluxoAtual);

                break;

            case TipoFaseBot.AcompanhamentoDiario:

                break;

            case TipoFaseBot.FluxoDeclaracaoSimplificada:

                string pathArquivo = "";
                if (activity.Attachments != null)
                {
                    pathArquivo = activity.Attachments[0].ContentUrl;
                }

                if (fluxoRetorno.TipoFasePasso_1.HasValue &&
                    fluxoRetorno.TipoFasePasso_1 == TipoFasePassoAhPasso.Fase_2 &&
                    !string.IsNullOrEmpty(pathArquivo))
                {
                    var aa = await _ocr.GetDocumentData(pathArquivo);

                    fluxoAtual.Texto           = aa;
                    fluxoAtual.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_3;
                }
                else
                {
                    fluxoRetorno = _fluxoDeclSimplificadaService.RecuperaFluxoDeclSimplificada(fluxoAtual, pathArquivo);
                }
                break;

            case TipoFaseBot.OhQueNaoSouber:
                fluxoRetorno.TipoFaseBot     = fluxoAtual.TipoFaseBotAnterior;
                fluxoRetorno.TipoFasePasso_1 = TipoFasePassoAhPasso.Fase_1;
                break;

            case TipoFaseBot.FluxoFinalizacao:

                fluxoRetorno.Texto = _fluxoFinalizacaoService.MensagemDeFinalizacao();

                break;

            case TipoFaseBot.FluxoErro:
                fluxoRetorno = _fluxoErroService.MontaErro(fluxoAtual);
                break;
            }

            return(fluxoRetorno);
        }