Esempio n. 1
0
        public async Task StartAsync()
        {
            var accion = "Establecer";

            context.PrivateConversationData.SetValue <string>("Accion", accion);

            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            string confirmacionRespuesta1       = "Tengo esta respuesta para usted:";
            string confirmacionRespuesta2       = "Tengo estas respuestas para usted:";
            string preguntaNoRegistrada1        = "Lo siento, su pregunta no esta registrada, tal vez no escribió la pregunta correctamente";
            string preguntaNoRegistrada2        = "Lo siento, su pregunta no esta registrada";
            string opcionSecundarioDeRespuesta1 = "Pero esta respuesta le podría interesar:";
            string opcionSecundarioDeRespuesta2 = "Pero estas respuestas le podrían interesar:";
            string preguntaConsulta             = "¿Tiene alguna otra consulta?";

            // Recorrido de la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                if (palabra1 == "aviso" || palabra1 == "avisos")
                {
                    reply.Attachments = RespuestasOutlook.GetEstablecerAvisoOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    return;
                }
                else if (palabra1 == "márgen" || palabra1 == "márgenes" || palabra1 == "margen" || palabra1 == "margenes")
                {
                    // Se detectó la segunda parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "página" || palabra2 == "pagina" || palabra2 == "páginas" || palabra2 == "paginas")
                        {
                            reply.Attachments = RespuestasWord.GetEstablecerMargenesPaginaWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetEstablecerMargenesPaginaWord();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetEstablecerMargenesPaginaWord();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    return;
                }
                else if (palabra1 == "tabulación" || palabra1 == "tabulacion" || palabra1 == "tabulaciones")
                {
                    reply.Attachments = RespuestasWord.GetEstablecerDesactivarQuitarTabulaciones();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    return;
                }
                else if (palabra1 == "regla" || palabra1 == "reglas")
                {
                    // Se detectó la segunda parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "combinación" || palabra2 == "combinacion" || palabra2 == "combinaciones")
                        {
                            reply.Attachments = RespuestasWord.GetEstablecerReglasCombinacionCorrespondencia();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetEstablecerReglasCombinacionCorrespondencia();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetEstablecerReglasCombinacionCorrespondencia();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

                    await context.PostAsync($"O tal vez no escribió correctamente la palabra '{palabra1}'?");

                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

            reply.Attachments = Cards.GetConsultaV2();
            await context.PostAsync(reply);

            await context.PostAsync("O tal vez no escribió la pregunta correctamente");

            return;
        }