Ejemplo n.º 1
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            // Obtener el estado de la respuesta (*Saber si el bot pregunto sobre otra pregunta*)
            var estadoRespuesta = "EstadoRespuesta";

            context.PrivateConversationData.TryGetValue <string>("EstadoRespuesta", out estadoRespuesta);

            Random rnd = new Random();

            // Respuestas a negaciones que puede generar el bot
            string[] negacion =
            {
                "Espero poder ayudarle la prónxima vez, estoy dispinible las 24 horas del día",
                "Entiendo ,Espero poder ayudarle la prónxima vez",
            };

            // Generate random indexes for negacion
            int mIndex = rnd.Next(0, negacion.Length);

            if (estadoRespuesta == "True")
            {
                // Display the result
                await context.PostAsync(negacion[mIndex]);

                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", "False");
                return;
            }
            else if (estadoRespuesta == "False")
            {
                // Display the result
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Lo siento, acaso tienes una consulta?");

                await context.PostAsync(reply);

                return;
            }
            else
            {
                // Display the result
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Lo siento, acaso tienes una consulta?");

                await context.PostAsync(reply);

                return;
            }
        }
Ejemplo n.º 2
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            // Obtener el estado de la respuesta (*Saber si el bot pregunto sobre otra pregunta*)
            var estadoRespuesta = "EstadoRespuesta";

            context.PrivateConversationData.TryGetValue <string>("EstadoRespuesta", out estadoRespuesta);

            if (estadoRespuesta == "True")
            {
                // Display the result
                await context.PostAsync("Entonces, me podrías indicar cuál es tu pregunta");

                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", "False");
                return;
            }
            else if (estadoRespuesta == "False")
            {
                // Display the result
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Lo siento, acaso tienes una consulta?");

                await context.PostAsync(reply);

                return;
            }
            else
            {
                // Display the result
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Perdón, no entiendo lo que necesitas \U0001F615?");

                await context.PostAsync(reply);

                return;
            }
        }
Ejemplo n.º 3
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Ver";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // --------------------------------------------------------------------
                if (palabra1 == "lista" || palabra1 == "listas")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "mensajes" || palabra2 == "mensaje")
                        {
                            foreach (var entityP3 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra3"))
                            {
                                var palabra3 = entityP3.Entity.ToLower().Replace(" ", "");
                                if (palabra3 == "conversación" || palabra3 == "conversaciones" || palabra3 == "conversacion")
                                {
                                    reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra3}'?");

                                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                                    await context.PostAsync(reply);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                            await context.PostAsync(preguntaNoRegistrada1);

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    await context.PostAsync($"Quizás desea saber como ver mensajes de correo electrónico por conversación, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "mensajes" || palabra1 == "mensaje")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "conversación" || palabra2 == "conversacion")
                        {
                            reply.Attachments = RespuestasOutlook.GetVerMensajesCorreoElectronicoConversacion();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "desconocido" || palabra2 == "desconocidos" || palabra2 == "sinleer" || palabra2 == "noleido" || palabra2 == "noleído" || palabra2 == "noleidos" || palabra2 == "noleídos")
                        {
                            reply.Attachments = RespuestasOutlook.GetVerSoloMensajesNoLeidos();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetVerSoloMensajesNoLeidosYConversacion();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetVerSoloMensajesNoLeidosYConversacion();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "cuadrocco" || palabra1 == "copiacarbónoculta" || palabra1 == "copiacarbonoculta" || palabra1 == "cco" || palabra1 == "copiacarbón" || palabra1 == "copiacarbon")
                {
                    reply.Attachments = RespuestasOutlook.GetMostrarOcultarVerCampoCopiaCarbonOculta();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "encabezado" || palabra1 == "encabezados")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "mensajes" || palabra2 == "mensaje")
                        {
                            reply.Attachments = RespuestasOutlook.GetVerEncabezadosMensajesCorreoElectronico();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetVerEncabezadosMensajesCorreoElectronico();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetVerEncabezadosMensajesCorreoElectronico();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "simultaneamente" || palabra1 == "simultáneamente")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "calendarios" || palabra2 == "calendario")
                        {
                            reply.Attachments = RespuestasOutlook.GetVerCalendarioSimultaneamente();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetVerCalendarioSimultaneamente();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetVerCalendarioSimultaneamente();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "tareas" || palabra1 == "tarea")
                {
                    reply.Attachments = RespuestasOutlook.GetVerTareasOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo")
                {
                    reply.Attachments = RespuestasOneDrive.GetVerArchivosCompartidosOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "fórmula" || palabra1 == "formula" || palabra1 == "fórmulas" || palabra1 == "formulas")
                {
                    reply.Attachments = RespuestasExcel.GetMostrarFormulas();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "cero" || palabra1 == "ceros")
                {
                    reply.Attachments = RespuestasExcel.GetMostrarValoresCero();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "fila" || palabra1 == "filas" || palabra1 == "columna" || palabra1 == "columnas")
                {
                    reply.Attachments = RespuestasExcel.GetMostrarFilasColumnas();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "hojas" || palabra1 == "hoja")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "cálculo" || palabra2 == "calculo")
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarHojaCalculoOculta();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarHojaCalculoOculta();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetMostrarHojaCalculoOculta();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "línea" || palabra1 == "líneas" || palabra1 == "linea" || palabra1 == "lineas")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "cuadrícula" || palabra2 == "cuadricula" || palabra1 == "división" || palabra1 == "division")
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarLineaCuadricula();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarLineaCuadricula();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetMostrarLineaCuadricula();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "número" || palabra1 == "números" || palabra1 == "numero" || palabra1 == "numeros")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "fecha" || palabra2 == "fechas" || palabra1 == "hora" || palabra1 == "horas")
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarNumerosFechasHoras();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "moneda" || palabra2 == "monedas")
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarNumerosMoneda();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetMostrarNumerosFechasHorasMonedas();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetMostrarNumerosFechasHorasMonedas();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "información" || palabra1 == "informacion")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "piedepágina" || palabra2 == "piedepagina" || palabra2 == "piesdepágina" || palabra2 == "piesdepagina")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetMostrarInformacionPiePaginaDiapositiva();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetMostrarInformacionPiePaginaDiapositiva();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasPowerPoint.GetMostrarInformacionPiePaginaDiapositiva();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    reply.Attachments = RespuestasOutlook.GetVerTareasOutlook();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 4
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Hacer";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                if (palabra1 == "cambio" || palabra1 == "cambios")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "documentoprotegido" || palabra2 == "documentosprotegidos")
                        {
                            reply.Attachments = RespuestasWord.GetPermitirCambiosDocumentoProtegido();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetPermitirCambiosDocumentoProtegido();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetPermitirCambiosDocumentoProtegido();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "seguimiento" || palabra1 == "seguimientos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "cambios" || palabra2 == "cambio")
                        {
                            reply.Attachments = RespuestasWord.GetRealizarSeguimientoCambiosWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetRealizarSeguimientoCambiosWord();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetRealizarSeguimientoCambiosWord();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 5
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Convertir";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "documento" || palabra1 == "documentos" || palabra1 == "archivo" || palabra1 == "archivos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "pdf")
                        {
                            reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "pdf")
                {
                    reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "texto" || palabra1 == "textos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "tabla" || palabra2 == "tablas")
                        {
                            reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "tabla" || palabra1 == "tablas")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "texto" || palabra2 == "textos")
                        {
                            reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetConvertirTextoTabla();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada");

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 6
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Enviar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "correoelectrónico" || palabra1 == "correoelectronico" || palabra1 == "correoselectrónicos" || palabra1 == "correoselectronicos" || palabra1 == "correos" || palabra1 == "correo" || palabra1 == "mensajes" || palabra1 == "mensaje")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "plantillas" || palabra2 == "plantillas")
                        {
                            reply.Attachments = RespuestasOutlook.GetEnviarMensajeBasadoPlantilla();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "lista" || palabra2 == "listas" || palabra2 == "grupo" || palabra2 == "grupos")
                        {
                            reply.Attachments = RespuestasOutlook.GetEnviarMensajeGrupoContactos();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                        else if (palabra2 == "reunión" || palabra2 == "reunion" || palabra2 == "reuniones")
                        {
                            reply.Attachments = RespuestasOutlook.GetReenviarReuniónOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetEnviarRespuestasIntencio2();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se dtecto la segunda parte de la pregunta
                    // Se detecto el Adverbio de la pregunta
                    foreach (var adv in result.Entities.Where(Entity => Entity.Type == "Adverbio"))
                    {
                        var adverbio = adv.Entity.ToLower().Replace(" ", "");
                        if (adverbio == "no")
                        {
                            reply.Attachments = RespuestasOutlook.GetNoEnviarMensaje();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetNoEnviarMensaje();
                            await context.PostAsync(preguntaNoRegistrada1);

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó el adverbio de la pregunta
                    reply.Attachments = RespuestasOutlook.GetReenviarYEnviarMensajeOutlook();
                    await context.PostAsync(confirmacionRespuesta2);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "respuestasautomaticas" || palabra1 == "respuestaautomatica" || palabra1 == "respuestasautomáticas" || palabra1 == "respuestaautomática" || palabra1 == "respuestasfuera" || palabra1 == "respuestafuera")
                {
                    reply.Attachments = RespuestasOutlook.GetEnviarRespuestasAutomaticasFueraOficinaOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "reenviar" || palabra1 == "reenvío" || palabra1 == "reenvio")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "reunión" || palabra2 == "reunion" || palabra2 == "reuniones")
                        {
                            reply.Attachments = RespuestasOutlook.GetReenviarReuniónOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "correoelectrónico" || palabra2 == "correoelectronico" || palabra2 == "correoselectrónicos" || palabra2 == "correoselectronicos" || palabra2 == "correos" || palabra2 == "correo" || palabra2 == "mensajes" || palabra2 == "mensaje")
                        {
                            reply.Attachments = RespuestasOutlook.GetReenviarMensajeOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetReenviarReuniónOutlookYMensajeOutlook();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetReenviarReuniónOutlookYMensajeOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                else if (palabra1 == "imágen" || palabra1 == "imágenes" || palabra1 == "imagen" || palabra1 == "imagenes" || palabra1 == "fotos" || palabra1 == "foto")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "onenote" || serv == "noenote" || serv == "note")
                        {
                            reply.Attachments = RespuestasOneNote.GetEnviarFotosImágenesDeOtrasAplicacionesOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetEnviarFotosImágenesDeOtrasAplicacionesOneNote();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // Obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetEnviarFotosImágenesDeOtrasAplicacionesOneNote();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Servicio");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasOneNote.GetEnviarFotosImágenesDeOtrasAplicacionesOneNote();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "documentos" || palabra1 == "documento" || palabra1 == "archivos" || palabra1 == "archivo")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "onenote" || serv == "noenote" || serv == "note")
                        {
                            reply.Attachments = RespuestasOneNote.GetEnviarDocumentosArchivosOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetEnviarDocumentosArchivosOneNote();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detecto el Servicio de la pregunta
                    // Obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetEnviarDocumentosArchivosOneNote();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "OneNote");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasOneNote.GetEnviarDocumentosArchivosOneNote();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    }
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 7
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Recuperar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // Recorrido de la segunda parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                // El usuario escribio en su pregunta la palabra elemento
                if (palabra1 == "elemento" || palabra1 == "elementos")
                {
                    // Recorrido de la primera parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        // El usuario escribio en su pregunta la palabra eliminado
                        if (palabra2 == "eliminado" || palabra2 == "eliminados")
                        {
                            reply.Attachments = RespuestasOutlook.GetRecuperarElementosEliminados();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetRecuperarElementosEliminados();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetRecuperarElementosEliminados();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // El usuario escribio en su pregunta la palabra mensaje
                else if (palabra1 == "mensaje" || palabra1 == "mensajes" || palabra1 == "correo" || palabra1 == "correos")
                {
                    // Recorrido de la primera parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        if (palabra2 == "eliminado" || palabra2 == "eliminados" || palabra2 == "elimine" || palabra2 == "borrado" || palabra2 == "borrados")
                        {
                            reply.Attachments = RespuestasOutlook.GetRestaurarMensajeEliminados();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetRestaurarMensajeEliminados();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    reply.Attachments = RespuestasOutlook.GetRecuperarMensajeDespuésEnviarlo();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "archivo" || palabra1 == "archivos")
                {
                    // Recorrido de la primera parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        if (palabra2 == "eliminado" || palabra2 == "eliminados" || palabra2 == "elimine")
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarArchivosEliminados();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarArchivosEliminados();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    reply.Attachments = RespuestasOneDrive.GetRecuperarArchivosEquipo();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "carpetas" || palabra1 == "carpeta")
                {
                    // Recorrido de la primera parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        if (palabra2 == "eliminado" || palabra2 == "eliminados" || palabra2 == "elimine")
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarArchivosEliminados();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarArchivosEliminados();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetRestaurarArchivosEliminados();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "versión" || palabra1 == "version")
                {
                    // Recorrido de la primera parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        if (palabra2 == "archivo" || palabra2 == "archivos")
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarVersionArchivoOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetRestaurarVersionArchivoOneDrive();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetRestaurarVersionArchivoOneDrive();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "cuenta" || palabra1 == "cuentas")
                {
                    // Recuperar la cuenta de Microsoft
                    reply.Attachments = Respuestas.GetRecuperarCuentaMicrosoft();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "contraseña" || palabra1 == "password")
                {
                    // Recorrido de 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 == "cuenta" || palabra2 == "cuentas")
                        {
                            // Cómo restablecer la contraseña de tu cuenta de Microsoft
                            reply.Attachments = Respuestas.GetRecuperarContraseñaMicrosoft();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            // Cómo restablecer la contraseña de tu cuenta de Microsoft
                            reply.Attachments = Respuestas.GetRecuperarContraseñaMicrosoft();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // Cómo restablecer la contraseña de tu cuenta de Microsoft
                    reply.Attachments = Respuestas.GetRecuperarContraseñaMicrosoft();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 8
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta   = "True";
            var estadoPregunta2  = "False";
            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";
            var accion           = "Mantener";

            // Se guarda la accion escrita por el usuario
            context.PrivateConversationData.SetValue <string>("Accion", accion);

            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             = "si tiene otra consulta por favor hágamelo saber";

            // Se detectó la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // ---------------------------------------------------------------------
                if (palabra1 == "cita" || palabra1 == "citas" || palabra1 == "reuniones" || palabra1 == "reunione")
                {
                    reply.Attachments = RespuestasOutlook.GetMantenerCitasYReuniones();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    reply.Attachments = RespuestasOutlook.GetMantenerCitasYReuniones();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 9
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Importar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "correodegmail" || palabra1 == "gmail" || palabra1 == "correogmail")
                {
                    // Recorrido de la segunda parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "outlook")
                        {
                            reply.Attachments = RespuestasOutlook.GetImportarGmailOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetImportarGmailOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetImportarGmailOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "contactos" || palabra1 == "contacto")
                {
                    // Recorrido del Servicio parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "outlook")
                        {
                            reply.Attachments = RespuestasOutlook.GetImportarContactosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetImportarContactosOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasOutlook.GetImportarContactosOutlook();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasOutlook.GetImportarContactosOutlook();
                        await context.PostAsync($"Lo siento, su pregunta no esta registrada, debe escribir un servicio.");

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "dato" || palabra1 == "datos")
                {
                    // Recorrido de la segunda parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "excel")
                        {
                            reply.Attachments = RespuestasExcel.GetImportarDatosExcel();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Excel");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetImportarDatosExcel();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Excel")
                    {
                        reply.Attachments = RespuestasExcel.GetImportarDatosExcel();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasExcel.GetImportarDatosExcel();
                        await context.PostAsync($"Lo siento, su pregunta no esta registrada, debe escribir un servicio.");

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "diapositiva" || palabra1 == "diapositivas")
                {
                    reply.Attachments = RespuestasPowerPoint.GetImportarDiapositivasPresentacion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 10
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Editar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";


            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "contacto" || palabra1 == "contactos")
                {
                    reply.Attachments = RespuestasOutlook.GetEditarContactosOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "grupos" || palabra1 == "grupo")
                {
                    // Recorrido de 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 == "contactos" || palabra2 == "contacto")
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "listas" || palabra1 == "lista")
                {
                    // Recorrido de 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 == "distribucion" || palabra2 == "distribución")
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetCrearGrupoContactosListaDistribucionOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "imágenes" || palabra1 == "imágene" || palabra1 == "imagenes" || palabra1 == "imagene")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onenote" || servicioU == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetRevisarImegenAOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetRevisarImegenAOneNote();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el Servicio de la pregunta
                    // Se obtiene el servicio que esta guardado en cache
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetRevisarImegenAOneNote();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "OneNote");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasOneNote.GetRevisarImegenAOneNote();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "pdf")
                {
                    reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "contenido")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "pdf")
                        {
                            reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "encabezados" || palabra1 == "encabezado" || palabra1 == "piedepágina" || palabra1 == "piedepagina" || palabra1 == "piesdepágina" || palabra1 == "piesdepagina")
                {
                    reply.Attachments = RespuestasWord.GetModificarEncabezadoPiePagina();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada");

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 11
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Sincronizar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "contactos" || palabra1 == "contactos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "iphone" || palabra2 == "ipod" || palabra2 == "ipodtouch" || palabra2 == "apple")
                        {
                            reply.Attachments = RespuestasOutlook.GetSincronizarContactosOutlookApple();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetSincronizarContactosOutlookApple();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetSincronizarContactosOutlookApple();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "carpetas" || palabra1 == "carpeta")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "documento" || palabra2 == "documentos")
                        {
                            reply.Attachments = RespuestasOneDrive.GetSincronizarCarpetaDocumentosOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetSincronizarCarpetaDocumentosOneDrive();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetSincronizarCarpetaDocumentosOneDrive();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "blocsdenotas" || palabra1 == "blocdenotas" || palabra1 == "bloc" || palabra1 == "blocs")
                {
                    reply.Attachments = RespuestasOneNote.GetSincronizarBlocsNotasOneNote();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 12
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Animar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                if (palabra1 == "texto" || palabra1 == "textos")
                {
                    reply.Attachments = RespuestasPowerPoint.GetAnimarTextoObjetosPowerPoint();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "objeto" || palabra1 == "objetos")
                {
                    reply.Attachments = RespuestasPowerPoint.GetAnimarTextoObjetosPowerPoint();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "conjunto" || palabra1 == "conjuntos" || palabra1 == "grupo" || palabra1 == "grupos")
                {
                    // Recorrido de 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 == "objetos" || palabra2 == "objeto")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAnimarConjuntoObjetosPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAnimarConjuntoObjetosPowerPoint();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasPowerPoint.GetAnimarConjuntoObjetosPowerPoint();
                    await context.PostAsync(preguntaNoRegistrada2);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                else if (palabra1 == "imagen" || palabra1 == "imágenes" || palabra1 == "imagenes")
                {
                    reply.Attachments = RespuestasPowerPoint.GetAnimarImagenDiapositiva();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "celdas" || palabra1 == "celda" || palabra1 == "filas" || palabra1 == "fila" || palabra1 == "columna" || palabra1 == "columnas")
                {
                    reply.Attachments = RespuestasPowerPoint.GetAnimarCeldasFilasColumenasTabla();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 13
0
        public async Task StartAsync()
        {
            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Mover";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            string preguntaConsulta             = "¿Tiene alguna otra consulta?";
            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:";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "carpeta" || palabra1 == "carpetas")
                {
                    reply.Attachments = RespuestasOutlook.GetCambiarNombreCarpeta();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "datos" || palabra2 == "dato")
                        {
                            reply.Attachments = RespuestasOutlook.GetMoverArchivoDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetMoverArchivoDatosOutlook();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    foreach (var service in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = service.Entity.ToLower().Replace(" ", "");
                        if (serv == "outlook")
                        {
                            reply.Attachments = RespuestasOutlook.GetMoverArchivoDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "onedrive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetCambiarNombreMoverFotosArhivosOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetMoverArchivoDatosOutlook();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escogido anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasOutlook.GetMoverArchivoDatosOutlook();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Outlook");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasOneDrive.GetCambiarNombreMoverFotosArhivosOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "OneDrive");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync(preguntaNoRegistrada2);

                        await context.PostAsync(reply);

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

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                        return;
                    }
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 14
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Aplicar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            string preguntaConsulta             = "¿Tiene alguna otra consulta?";
            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:";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "categoría" || palabra1 == "categorías" || palabra1 == "categoria" || palabra1 == "categorias")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "color")
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearAsignarCategoriasColor();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearAsignarCategoriasColor();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como asignar categorías de color, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetCrearAsignarCategoriasColor();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "diseñosdefondo" || palabra1 == "diseñosdefondos" || palabra1 == "fondos" || palabra1 == "fondo" || palabra1 == "diseño" || palabra1 == "diseños")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "mensajes" || palabra2 == "mensaje")
                        {
                            reply.Attachments = RespuestasOutlook.GetCrearDiseñosDePlantillaParaMensajesV2();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetAplicarFondosTemasMensajes();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como aplicar un tema a mensajes de correo, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetAplicarFondosTemasMensajes();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "espaciosimple" || palabra1 == "espaciossimples")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "línea" || palabra2 == "líneas" || palabra2 == "linea" || palabra2 == "lineas")
                        {
                            reply.Attachments = RespuestasWord.GetAplicarEspacioSimpleLineasDocumento();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra1 == "documento" || palabra1 == "documentos")
                        {
                            reply.Attachments = RespuestasWord.GetAplicarEspacioSimpleLineasDocumento();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetAplicarEspacioSimpleLineasDocumento();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetAplicarEspacioSimpleLineasDocumento();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "estilos" || palabra1 == "estilo")
                {
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicio1 = serv.Entity.ToLower().Replace(" ", "");

                        if (servicio1 == "word")
                        {
                            reply.Attachments = RespuestasWord.GetAplicarEstiloTextoWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicio1 == "outlook")
                        {
                            reply.Attachments = Respuestas.GetAplicarEstilos();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetAplicarEstilos();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se encuentra el servicio '{servicio1}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word" || servicio == "Outlook")
                    {
                        reply.Attachments = Respuestas.GetAplicarEstilos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = Respuestas.GetAplicarEstilos();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "efecto" || palabra1 == "efectos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "animación" || palabra2 == "animacion" || palabra2 == "animaciones")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAplicarVariosEfectosAnimacion();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAplicarVariosEfectosAnimacion();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = reply.Attachments = RespuestasPowerPoint.GetAplicarVariosEfectosAnimacion();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "animación" || palabra1 == "animacion" || palabra1 == "animaciones")
                {
                    reply.Attachments = RespuestasPowerPoint.GetAplicarVariosEfectosAnimacion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "plantilla" || palabra1 == "plantillas")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "presentación" || palabra2 == "presentacion" || palabra2 == "presentaciones")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAplicarPlantillaPresentacion();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetAplicarPlantillaPresentacion();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasPowerPoint.GetAplicarPlantillaPresentacion();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                // -------------------------------------------------------------------
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 15
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Definicion";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "archivodepetición" || palabra1 == "archivodepeticion")
                {
                    reply.Attachments = RespuestasOneDrive.GetDefinicionArchivoPeticion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "plan" || palabra1 == "planes" || palabra1 == "precio" || palabra1 == "precios")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "almacenamiento" || palabra2 == "almacenamientos")
                        {
                            foreach (var entityP3 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra3"))
                            {
                                var palabra3 = entityP3.Entity.ToLower().Replace(" ", "");
                                if (palabra3 == "región" || palabra3 == "regiones" || palabra3 == "país" || palabra3 == "paises")
                                {
                                    reply.Attachments = RespuestasOneDrive.GetPlanesAlmacenamientoPaisOneDrive();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = RespuestasOneDrive.GetPlanesAlmacenamientoPaisOneDrive();
                                    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);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            reply.Attachments = RespuestasOneDrive.GetPlanesAlmacenamientoPaisOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetPlanesAlmacenamientoPaisOneDrive();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetPlanesAlmacenamientoPaisOneDrive();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "formatos" || palabra1 == "formato")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "videos" || palabra2 == "video")
                        {
                            reply.Attachments = RespuestasOneDrive.GetFormatoVideoPermitidosOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetFormatoVideoPermitidosOneDrive();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "requisitos" || palabra1 == "requesito")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "sistema" || palabra2 == "equipo")
                        {
                            reply.Attachments = RespuestasOneDrive.GetRequisitosSistemaOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetRequisitosSistemaOneDrive();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "firma" || palabra1 == "firmas")
                {
                    reply.Attachments = Respuestas.GetDefinicionFirmaDigital();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

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

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
            }
            // Obtener el producto si este fue elegido de forma explicita
            foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
            {
                var value = entity.Entity.ToLower().Replace(" ", "");

                if (value == "outlook" || value == "outlok")
                {
                    reply.Attachments = RespuestasOutlook.GetOutlookDefinicion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("tipoServicio", "Outlook");
                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (value == "onedrive" || value == "One Drive" || value == "OneDrive")
                {
                    reply.Attachments = RespuestasOneDrive.GetOneDriveDefinicion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (value == "excel")
                {
                    reply.Attachments = RespuestasExcel.GetExcelDefinicionCard();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (value == "powerpoint" || value == "power point")
                {
                    reply.Attachments = RespuestasPowerPoint.GetPowerPointDefinicionCard();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (value == "word")
                {
                    reply.Attachments = RespuestasWord.GetWordDefinicionCard();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (value == "onenote" || value == "OneNote")
                {
                    reply.Attachments = RespuestasOneNote.GetOneNoteDefinicion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync($"Lo siento, '{value}' no esta registrado como servicio");

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }

            //obtener el producto si este a sido escodigo anteriormente
            var servicio = "Servicio";

            context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
            if (servicio == "Word")
            {
                reply.Attachments = RespuestasWord.GetWordDefinicionCard();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else if (servicio == "Excel")
            {
                reply.Attachments = RespuestasExcel.GetExcelDefinicionCard();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "Excel");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else if (servicio == "Outlook")
            {
                reply.Attachments = RespuestasOutlook.GetOutlookDefinicion();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "Outlook");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else if (servicio == "OneDrive")
            {
                reply.Attachments = RespuestasOneDrive.GetOneDriveDefinicion();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "OneDrive");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else if (servicio == "PowerPoint")
            {
                reply.Attachments = RespuestasPowerPoint.GetPowerPointDefinicionCard();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "PowerPoint");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else if (servicio == "OneNote")
            {
                reply.Attachments = RespuestasOneNote.GetOneNoteDefinicion();
                await context.PostAsync(confirmacionRespuesta1);

                await context.PostAsync(reply);

                await context.PostAsync(preguntaConsulta);

                context.PrivateConversationData.SetValue <string>("tipoServicio", "OneNote");
                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                return;
            }
            else
            {
                // Si el usuario no a ingresado la primera parte de la pregunta
                await context.PostAsync("Lo siento, su pregunta no esta registrada");

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

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

                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                return;
            }
        }
Ejemplo n.º 16
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta   = "True";
            var estadoPregunta2  = "False";
            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";
            var accion           = "Abrir";

            // Se guarda la accion escrita por el usuario
            context.PrivateConversationData.SetValue <string>("Accion", accion);

            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             = "si tiene otra consulta por favor hágamelo saber";

            // Se detectó la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // ---------------------------------------------------------------------
                if (palabra1 == "elemento" || palabra1 == "elementos")
                {
                    // 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 == "archivo" || palabra2 == "archivos")
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // ---------------------------------------------------------------------
                else if (palabra1 == "archivos" || palabra1 == "archivo" || palabra1 == "carpeta")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onedrive" || servicioU == "OneDrive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetAbrirArchivosDispositivoMovilOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicioU == "outlook" || servicioU == "Outlook")
                        {
                            reply.Attachments = RespuestasOutlook.GetAbrirArchivosDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetAbrirArchivosOneDriveOutlook();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detecto el Servicio de la pregunta
                    // 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 == "dato" || palabra2 == "datos")
                        {
                            reply.Attachments = RespuestasOutlook.GetAbrirArchivosDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "dispositivomovil" || palabra2 == "dispositivomóvil" || palabra2 == "dispositivo" || palabra2 == "dispositivos" || palabra2 == "dispositivosmóviles" || palabra2 == "dispositivosmoviles" || palabra2 == "celular")
                        {
                            reply.Attachments = RespuestasOneDrive.GetAbrirArchivosDispositivoMovilOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetAbrirArchivosDatosOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    // Obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasOutlook.GetAbrirArchivosDatosOutlook();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", servicio);
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasOneDrive.GetAbrirArchivosDispositivoMovilOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", servicio);
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = Respuestas.GetAbrirArchivosOneDriveOutlook();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                // ---------------------------------------------------------------------
                else if (palabra1 == "notas" || palabra1 == "nota" || palabra1 == "blocs de notas" || palabra1 == "bloc de notas" || palabra1 == "bloc" || palabra1 == "block")
                {
                    reply.Attachments = RespuestasOneNote.GetAbrirBlocNotasOneNote();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                // ---------------------------------------------------------------------
                else
                {
                    reply.Attachments = RespuestasOutlook.GetRespuestaAbrirDialog();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 17
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Compartir";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);

                if (palabra1 == "carpeta" || palabra1 == "carpeta")
                {
                    // 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 == "contactos" || palabra2 == "contacto")
                        {
                            // Se detectó  la tercera parte de la pregunta
                            foreach (var entityP3 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra3"))
                            {
                                var palabra3 = entityP3.Entity.ToLower().Replace(" ", "");
                                if (palabra3 == "usuarios" || palabra3 == "usuario")
                                {
                                    reply.Attachments = RespuestasOutlook.GetCompartirCarpetaContactosUsuarios();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = RespuestasOutlook.GetCompartirCarpetaContactosUsuarios();
                                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra3}'?");

                                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                                    await context.PostAsync(reply);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            // No se detectó la tercera parte de la pregunta
                            reply.Attachments = RespuestasOutlook.GetCompartirCarpetaContactosUsuarios();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetCompartirCarpetaContactosUsuarios();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetCompartirCarpetaContactosUsuarios();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo")
                {
                    // Se detectó el Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word")
                        {
                            reply.Attachments = RespuestasWord.GetCompartirArchivosWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "excel")
                        {
                            reply.Attachments = RespuestasExcel.GetCompartirLibrosExcelOtrosUsuarios();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetCompartirPresentacionPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "onedrive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetCompartirArchivosCarpetasOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetCompartirArchivos();
                            await context.PostAsync($"Lo siento, {serv} no esta registrado, consulte otra vez el servicio escribiendo ayuda");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // 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 == "Android" || palabra2 == "android")
                        {
                            reply.Attachments = RespuestasOneDrive.GetCompartirArchivosOneDriveAndroid();
                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetCompartirArchivosOneDriveAndroid();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = Respuestas.GetCompartirArchivos();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "blocdenotas" || palabra1 == "páginadenotas" || palabra1 == "páginasdenotas" || palabra1 == "paginadenotas" || palabra1 == "paginasdenotas")
                {
                    reply.Attachments = RespuestasOneNote.GetCompartirPaginaDeNotasBlocDeNotasOneNote();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "presentación" || palabra1 == "presentacion" || palabra1 == "presentaciones")
                {
                    reply.Attachments = RespuestasPowerPoint.GetCompartirPresentacionPowerPoint();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "libro" || palabra1 == "libros")
                {
                    reply.Attachments = RespuestasExcel.GetCompartirLibrosExcelOtrosUsuarios();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "coautoría" || palabra1 == "coautoria" || palabra1 == "autoría" || palabra1 == "autoria")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra1 == "presentación" || palabra1 == "presentacion" || palabra1 == "presentaciones")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetCompartirAutoriaPresentacionPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetCompartirAutoriaPresentacionPowerPoint();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasPowerPoint.GetCompartirAutoriaPresentacionPowerPoint();
                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            reply.Attachments = Respuestas.GetConsultaV2();
            await context.PostAsync(preguntaNoRegistrada2);

            await context.PostAsync(reply);

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 18
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Combinar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // Se detectó la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                // La primera parte de la pregunta es firma
                if (palabra1 == "documento" || palabra1 == "documentos" || palabra1 == "achivos" || palabra1 == "archivo")
                {
                    reply.Attachments = RespuestasWord.GetCombinarDocumentosWord();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "correspondencia")
                {
                    // 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(" ", "");

                        // La segunda parte de la prgunta es mensaje o correo
                        if (palabra2 == "documento" || palabra2 == "documentos" || palabra2 == "archivoexcel" || palabra2 == "documentoexcel" || palabra2 == "hoja")
                        {
                            reply.Attachments = RespuestasWord.GetCombinarCorrespondenciaHojaCalculo();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetCombinarCorrespondenciaHojaCalculo();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetCombinarCorrespondenciaHojaCalculo();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    reply.Attachments = RespuestasWord.GetCombinarDocumentosWord();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // Si el usuario no ingreso la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 19
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Obtener";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "información" || palabra1 == "informacion")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "navegar" || palabra2 == "nvegar")
                        {
                            reply.Attachments = RespuestasOutlook.GetObtenerInformacionNavegarOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetObtenerInformacionNavegarOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como obtener información sobre cómo navegar en Outlook con características de accesibilidad, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetObtenerInformacionNavegarOutlook();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "id" || palabra1 == "iddigital")
                {
                    reply.Attachments = RespuestasOutlook.GetObtenerIdDigitalOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    reply.Attachments = RespuestasOutlook.GetObtenerInformacionNavegarOutlook();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 20
0
        public async Task StartAsync()
        {
            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Trabajar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            string preguntaConsulta             = "¿Tiene alguna otra consulta?";
            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:";

            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            // 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(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "conjunta" || palabra1 == "colaborativa")
                {
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var service = entity.Entity.ToLower().Replace(" ", "");

                        if (service == "word")
                        {
                            reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (service == "onedrive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetTrabajarManeraConjuntaOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (service == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetTrabajarConjuntamentePresentacionesPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "PowerPoint");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                        else
                        {
                            await context.PostAsync($"Lo siento, '{service}' no esta registrado como servicio");

                            reply.Attachments = Respuestas.GetTrabajarManeraConjunta();
                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");

                        // La segunda parte de la prgunta es mensaje o correo
                        if (palabra2 == "presentación" || palabra2 == "presentacion" || palabra2 == "presentaciones")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetTrabajarConjuntamentePresentacionesPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetTrabajarConjuntamentePresentacionesPowerPoint();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escogido anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasOneDrive.GetTrabajarManeraConjuntaOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "OneNote");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "PowerPoint")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetTrabajarConjuntamentePresentacionesPowerPoint();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetTrabajarManeraConjunta();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "coautoría" || palabra1 == "co-autoría" || palabra1 == "coautoria" || palabra1 == "co-autoria")
                {
                    // Se detecto el Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var service = entity.Entity.ToLower().Replace(" ", "");

                        if (service == "word")
                        {
                            reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            await context.PostAsync($"Lo siento, '{service}' no esta registrado como servicio");

                            reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            return;
                        }
                    }
                    // No se detectó el Servicio de la pregunta
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasWord.GetTrabajarCoAutoriaTiempoReal();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "páginas" || palabra1 == "página" || palabra1 == "paginas" || palabra1 == "seccion" || palabra1 == "secciones")
                {
                    reply.Attachments = RespuestasOneNote.GetTrabajarPaginasSeccionesOneNote();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            reply.Attachments = Respuestas.GetConsultaV2();
            await context.PostAsync(preguntaNoRegistrada2);

            await context.PostAsync(reply);

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 21
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Organizar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "calendarios" || palabra1 == "calendario")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "categoría" || palabra2 == "categorías" || palabra2 == "categoria" || palabra2 == "categorias")
                        {
                            reply.Attachments = RespuestasOutlook.GetOrganizarCalendariosCategorias();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetOrganizarCalendariosCategorias();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como organizar su calendario con la opción de categorías de color, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetOrganizarCalendariosCategorias();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "mensajes" || palabra1 == "mensaje")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "bajaprioridad")
                        {
                            reply.Attachments = RespuestasOutlook.GetUsarCorreosOrganizarBajaPrioridad();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetUsarCorreosOrganizarBajaPrioridad();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como organizar sus mensajes de baja prioridad en Outlook, tengo esto: ");

                    reply.Attachments = RespuestasOutlook.GetUsarCorreosOrganizarBajaPrioridad();
                    await context.PostAsync(reply);

                    await context.PostAsync($"Caso contrario, la pregunta no se encuentra registrada o vuelva a escribir correctamente la pregunta.");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "fotos" || palabra1 == "foto")
                {
                    reply.Attachments = RespuestasOneDrive.GetOrganizarBuscarFotosOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 22
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Guardar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "mensajes" || palabra1 == "mensaje")
                {
                    reply.Attachments = RespuestasOutlook.GetGuardarMensajeOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo" || palabra1 == "documentos" || palabra1 == "documento")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "OneDrive" || serv == "onedrive" || serv == "drive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetGuardarDocumentoOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "Word" || serv == "word")
                        {
                            foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                            {
                                var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                                if (palabra2 == "pdf" || palabra2 == "xps")
                                {
                                    reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                                    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);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetGuardarDocumentoOneDrive();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasOneDrive.GetGuardarDocumentoOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                        {
                            var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                            if (palabra2 == "pdf" || palabra2 == "xps")
                            {
                                reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                                await context.PostAsync(confirmacionRespuesta1);

                                await context.PostAsync(reply);

                                await context.PostAsync(preguntaConsulta);

                                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                return;
                            }
                            else
                            {
                                reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                                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);

                                context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                return;
                            }
                        }
                        reply.Attachments = RespuestasOneDrive.GetGuardarDocumentoOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "fotos" || palabra1 == "foto" || palabra1 == "videos" || palabra1 == "video" || palabra1 == "vídeos" || palabra1 == "vídeo")
                {
                    reply.Attachments = RespuestasOneDrive.GetGuardarFotosVideosOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "capturasdepantalla" || palabra1 == "capturadepantalla" || palabra1 == "capturas" || palabra1 == "captura")
                {
                    reply.Attachments = RespuestasOneDrive.GetGuardarCapturasPantallaOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "notas" || palabra1 == "nota" || palabra1 == "blocs de notas" || palabra1 == "bloc de notas" || palabra1 == "bloc" || palabra1 == "block")
                {
                    reply.Attachments = RespuestasOneNote.GetGuardarNotasBlocsNotas();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "presentación" || palabra1 == "presentacion" || palabra1 == "presentaciones")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "onedrive")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetGuardarCompartirPresentacionOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "OneDrive");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetGuardarCompartirPresentacionOneDrive();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetGuardarCompartirPresentacionOneDrive();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasPowerPoint.GetGuardarCompartirPresentacionOneDrive();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "plantilla" || palabra1 == "plantillas")
                {
                    reply.Attachments = RespuestasPowerPoint.GetGuardarPlantillaPowerPoint();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                }
                else
                {
                    reply.Attachments = RespuestasOutlook.GetGuardarMensajeOutlook();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 23
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Buscar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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 preguntaConsulta2            = "si necesita más información por favor hágamelo saber";
            string preguntaConsulta             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "personas" || palabra1 == "persona" || palabra1 == "contactos" || palabra1 == "contacto")
                {
                    reply.Attachments = RespuestasOutlook.GetBuscarPersonasOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "mensajes" || palabra1 == "mensaje")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "busquedainstantanea" || palabra2 == "búsquedainstantánea" || palabra2 == "búsquedainstantanea" || palabra2 == "busquedainstantánea" || palabra2 == "búsqueda" || palabra2 == "busqueda")
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarMensajeBusquedaInstantanea();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarMensajeBusquedaInstantanea();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetBuscarMensajeBusquedaInstantanea();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "elementos" || palabra1 == "elemento")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "archivos" || palabra2 == "archivo")
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetBuscarElementosArchivosDatos();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "archivos" || palabra1 == "archivo")
                {
                    foreach (var servicio in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = servicio.Entity.ToLower().Replace(" ", "");
                        if (serv == "onedrive")
                        {
                            foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                            {
                                var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                                if (palabra2 == "ios")
                                {
                                    reply.Attachments = RespuestasOneDrive.GetBuscarTrabajarArchivosOneDriveIos();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else if (palabra2 == "android")
                                {
                                    reply.Attachments = RespuestasOneDrive.GetBuscarTrabajarArchivosOneDriveAndroid();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else if (palabra2 == "windowsphone")
                                {
                                    reply.Attachments = RespuestasOneDrive.GetBuscarTrabajarArchivosOneDriveWindowsPhone();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else if (palabra2 == "sharepoint")
                                {
                                    reply.Attachments = RespuestasOneDrive.GetBuscarArchivosSharePointOneDrive();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = RespuestasOneDrive.GetBuscarTrabajarArchivosOneDriveAndroid();
                                    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);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            reply.Attachments = RespuestasOneDrive.GetBuscarOMoverArchivosOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "outlook")
                        {
                            foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                            {
                                var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                                if (palabra2 == "datos" || palabra2 == "dato")
                                {
                                    reply.Attachments = RespuestasOutlook.GetBuscarArchivosDatosOutlook();
                                    await context.PostAsync(confirmacionRespuesta1);

                                    await context.PostAsync(reply);

                                    await context.PostAsync(preguntaConsulta);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                                    return;
                                }
                                else
                                {
                                    reply.Attachments = RespuestasOutlook.GetBuscarArchivosDatosOutlook();
                                    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);

                                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                                    return;
                                }
                            }
                            reply.Attachments = RespuestasOutlook.GetBuscarArchivosDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetBuscarTrabajarArchivosOneDriveAndroid();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "datos" || palabra2 == "dato")
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarArchivosDatosOutlook();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "sharepoint")
                        {
                            reply.Attachments = RespuestasOneDrive.GetBuscarArchivosSharePointOneDrive();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetBuscarArchivosDatosOutlook();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    reply.Attachments = RespuestasOneDrive.GetBuscarArchivosOneDriveBuscarArchivosDatosOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "referencias" || palabra1 == "referencia")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onenote" || servicioU == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetBuscarReferenciasFacilmenteOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetBuscarReferenciasFacilmenteOneNote();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el Servico de la pregunta
                    reply.Attachments = RespuestasOneNote.GetBuscarReferenciasFacilmenteOneNote();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                // -------------------------------------------------------------------
                else if (palabra1 == "nota" || palabra1 == "notas")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onenote" || servicioU == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetBuscarNotasOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetBuscarNotasOneNote();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetBuscarNotasOneNote();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasOneNote.GetBuscarNotasOneNote();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "fotos" || palabra1 == "foto")
                {
                    reply.Attachments = RespuestasOneDrive.GetOrganizarBuscarFotosOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "regla")
                {
                    reply.Attachments = RespuestasWord.GetMostrarOcultarReglaWord();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "texto" || palabra1 == "texto" || palabra1 == "datos" || palabra1 == "dato")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "documentos" || palabra2 == "documento" || palabra2 == "archivo" || palabra2 == "archivos")
                        {
                            reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "hoja" || palabra2 == "hojas")
                        {
                            reply.Attachments = RespuestasExcel.GetBuscarTextoNumerosHojaCalculo();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    // Se detecto el Servicio de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicio1 = serv.Entity.ToLower().Replace(" ", "");

                        if (servicio1 == "word")
                        {
                            reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicio1 == "excel")
                        {
                            reply.Attachments = RespuestasExcel.GetBuscarTextoNumerosHojaCalculo();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Excel");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se encuentra el servicio '{servicio1}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Word" || servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "Excel")
                    {
                        reply.Attachments = RespuestasExcel.GetBuscarTextoNumerosHojaCalculo();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasWord.GetBuscarReemplazarTextoDatosDocumentoWord();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "vínculo" || palabra1 == "vínculos" || palabra1 == "vinculo" || palabra1 == "vinculos")
                {
                    reply.Attachments = RespuestasExcel.GetBuscarVinculosLibro();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "referencia" || palabra1 == "referencias")
                {
                    reply.Attachments = RespuestasExcel.GetBuscarVinculosLibro();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "celdas" || palabra1 == "celda")
                {
                    reply.Attachments = RespuestasExcel.GetBuscarCeldasOcultasHoja();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "duplicado" || palabra1 == "duplicados")
                {
                    reply.Attachments = RespuestasExcel.GetBuscarDuplicadosExcel();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 24
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Exportar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // Se detectó la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "calendario" || palabra1 == "calendarios")
                {
                    // Se detectó  la segunda parte de la pregunta
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "google" || palabra2 == "googol")
                        {
                            reply.Attachments = RespuestasOutlook.GetExportarCalendarioGoogleCalendar();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetExportarCalendarioGoogleCalendar();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetExportarCalendarioGoogleCalendar();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
                else if (palabra1 == "correoelectrónico" || palabra1 == "correoelectrónicos" || palabra1 == "correoelectronico" || palabra1 == "correoelectronicos" || palabra1 == "contacto" || palabra1 == "contactos" || palabra1 == "calendario" || palabra1 == "calendarios" || palabra1 == "correo" || palabra1 == "correos")
                {
                    reply.Attachments = RespuestasOutlook.GetExportarCorreoContactosCalendarioOutlook();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo" || palabra1 == "documentos" || palabra1 == "documento")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "pdf")
                        {
                            reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    reply.Attachments = Respuestas.GetGuardarArchivoPDF();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 25
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Ajustar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";


            // Se detectó la primera parte de la pregunta
            foreach (var entityP1 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra1"))
            {
                var palabra1 = entityP1.Entity.ToLower().Replace(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                // La primera parte de la pregunta es modo o apariencia
                if (palabra1 == "texto" || palabra1 == "textos")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word" || serv == "Word" || serv == "outlook" || serv == "Outlook")
                        {
                            reply.Attachments = RespuestasWord.GetAjustarTextoWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetAjustarTextoWord();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word" || servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasWord.GetAjustarTextoWord();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = RespuestasWord.GetAjustarTextoWord();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "espaciado" || palabra1 == "espaciado")
                {
                    reply.Attachments = Respuestas.GetAjustarSangriaEspaciado();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "sangría" || palabra1 == "sangrías")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word" || serv == "Word" || serv == "outlook" || serv == "Outlook")
                        {
                            reply.Attachments = RespuestasWord.GetAjustarSangriaEspaciado();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "outlook" || serv == "Outlook")
                        {
                            reply.Attachments = Respuestas.GetAjustarSangriaEspaciado();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetAjustarSangriaEspaciado();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word" || servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasWord.GetAjustarSangriaEspaciado();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = Respuestas.GetAjustarSangriaEspaciado();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                        return;
                    }
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // Si el usuario no ingreso la primera parte de la pregunta
            reply.Attachments = Respuestas.GetConsultaV2();
            await context.PostAsync(preguntaNoRegistrada2);

            await context.PostAsync(reply);

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 26
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Revisar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "ortografia" || palabra1 == "ortografía")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicio1 = serv.Entity.ToLower().Replace(" ", "");
                        if (servicio1 == "onenote" || servicio1 == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetRevisarOrtografiAOneNote();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicio1 == "word" || servicio1 == "excel" || servicio1 == "powerpoint" || servicio1 == "outlook" || servicio1 == "office")
                        {
                            reply.Attachments = Respuestas.GetRevisarOrtografiaOffice();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetRevisarOrtografiaOffice();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente el servicio '{servicio1}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el Servicio de la pregunta
                    // Se obtiene el servicio que esta guardado en cache
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "OneNote" || servicio == "onenote")
                    {
                        reply.Attachments = RespuestasOneNote.GetRevisarOrtografiAOneNote();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Servicio");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetRevisarOrtografiaOffice();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 27
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Solucionar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                // Se guarda la primera parte de la pregunta
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------

                if (palabra1 == "ecuaciones" || palabra1 == "ecuacion" || palabra1 == "ecuacionesmatemáticas" || palabra1 == "ecuacionematematica" || palabra1 == "ecuacionesmatematicas")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onenote" || servicioU == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetResolverEcuaciones();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneNote.GetResolverEcuaciones();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta1);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el Servicio de la pregunta
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetResolverEcuaciones();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasOneNote.GetResolverEcuaciones();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "problemas" || palabra1 == "problema" || palabra1 == "error" || palabra1 == "errores")
                {
                    // Se detectó el Servico de la pregunta
                    foreach (var serv in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var servicioU = serv.Entity.ToLower().Replace(" ", "");
                        if (servicioU == "onenote" || servicioU == "OneNote")
                        {
                            reply.Attachments = RespuestasOneNote.GetSolucionarOneNote();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "OneNote");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicioU == "outlook" || servicioU == "outlok")
                        {
                            reply.Attachments = RespuestasOutlook.GetSolucionarOutlook();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Outlook");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (servicioU == "onedrive" || servicioU == "drive")
                        {
                            reply.Attachments = RespuestasOneDrive.GetSolucionarOneDrive();
                            await context.PostAsync(confirmacionRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "OneDrive");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetSolucionarOffice();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{servicioU}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el Servicio de la pregunta
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "OneNote")
                    {
                        reply.Attachments = RespuestasOneNote.GetSolucionarOneNote();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "Outlook")
                    {
                        reply.Attachments = RespuestasOutlook.GetSolucionarOutlook();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "OneDrive")
                    {
                        reply.Attachments = RespuestasOneDrive.GetSolucionarOneDrive();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetSolucionarOffice();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta2);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else
                {
                    reply.Attachments = Respuestas.GetSolucionarOffice();
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra1}'?");

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            reply.Attachments = Respuestas.GetConsultaV2();
            await context.PostAsync(preguntaNoRegistrada2);

            await context.PostAsync(reply);

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }
Ejemplo n.º 28
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Copiar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);

                if (palabra1 == "archivos" || palabra1 == "archivo" || palabra1 == "carpetas" || palabra1 == "carpeta")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "sharepoint")
                        {
                            reply.Attachments = RespuestasOneDrive.GetCopiarArchivosCarpetasOneDriveSharePoint();
                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOneDrive.GetCopiarArchivosCarpetasOneDriveSharePoint();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la tercera parte de la pregunta
                    reply.Attachments = RespuestasOneDrive.GetBuscarArchivosOneDriveBuscarArchivosDatosOutlook();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else
                {
                    await context.PostAsync($"¿{palabra1}?, por favor vuelva a escribir la consulta correctamente");

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    return;
                }
            }
            // Si el usuario no ingreso la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            return;
        }
Ejemplo n.º 29
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            string confirmacionRespuesta1 = "También tengo esta respuesta para usted :";
            string confirmacionRespuesta2 = "También tengo estas respuestas para usted :";
            string preguntaNoEncontrada   = "Lo siento, no tengo otra respuesta para su pregunta";
            string preguntaConsulta       = "si tiene otra consulta por favor hágamelo saber";

            // Obtener el estado de la pregunta (*Saber si el usuario a realizado una pregunta o no*)
            var estadoPregunta = "EstadoPregunta";

            context.PrivateConversationData.TryGetValue <string>("EstadoPregunta", out estadoPregunta);

            // Obtener la Accion si esta a sido escogida anteriormente
            var acccion = "Accion";

            context.PrivateConversationData.TryGetValue <string>("Accion", out acccion);

            // Obtener el Servicio si este a sido escogido anteriormente
            var servicio = "Servicio";

            context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);

            // Obtener la Pregunta::Palabra1 si esta a sido escogida anteriormente
            var palabra1 = "Palabra1";

            context.PrivateConversationData.TryGetValue <string>("Palabra1", out palabra1);

            // Si el usuario a realizado un pregunta correcta
            if (estadoPregunta == "True")
            {
                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);

                // ------------ ABRIR -------------
                // --------------------------------
                if (acccion == "Abrir")
                {
                    if (palabra1 == "elemento" || palabra1 == "elementos")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarElemento();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "archivos" || palabra1 == "archivo")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "notas" || palabra1 == "nota" || palabra1 == "blocs de notas" || palabra1 == "bloc de notas" || palabra1 == "bloc" || palabra1 == "block")
                    {
                        reply.Attachments = RespuestasOneNote.GetAbrirBlocNotasCompartidoOneNote();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaNoEncontrada);

                        return;
                    }
                }
                // ----------- AGREGAR ------------
                // --------------------------------
                else if (acccion == "Agregar")
                {
                    if (palabra1 == "contacto" || palabra1 == "contactos" || palabra1 == "correos" || palabra1 == "correo" || palabra1 == "emails" || palabra1 == "email")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "nombres" || palabra1 == "nombre" || palabra1 == "personas" || palabra1 == "persona")
                    {
                        reply.Attachments = RespuestasOutlook.GetCambiarNombrePerfil();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "graficos" || palabra1 == "grafico" || palabra1 == "gráficos" || palabra1 == "gráfico")
                    {
                        reply.Attachments = RespuestasOutlook.GetUsarGráficos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "tabla" || palabra1 == "tablas")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarTablas();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "confirmaciones" || palabra1 == "conformación" || palabra1 == "confirmacion")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarConfirmacion();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "notificaciones" || palabra1 == "notificación" || palabra1 == "notificacion")
                    {
                        reply.Attachments = RespuestasOutlook.GetActivarDesactivarAlertas();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "seguimiento" || palabra1 == "seguimientos")
                    {
                        reply.Attachments = RespuestasOutlook.GetSeguimiento();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "díasnolaborables" || palabra1 == "diasnolaborables" || palabra1 == "feriados" || palabra1 == "feriado")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarDiasNoLaborables();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "firmas" || palabra1 == "firma")
                    {
                        reply.Attachments = Respuestas.GetAgregarQuitarFirmaOffice();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "tarjetas" || palabra1 == "tarjeta")
                    {
                        reply.Attachments = RespuestasOutlook.GetTarjeta();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "hipervínculo" || palabra1 == "hipervinculo" || palabra1 == "hipervínculos" || palabra1 == "hipervinculos")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearQUitarHipervínculoParaMac();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "archivos" || palabra1 == "archivo")
                    {
                        reply.Attachments = Respuestas.GetAgregarArchivo();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "contenido" || palabra1 == "contenidos")
                    {
                        reply.Attachments = RespuestasOneNote.GetAgregaContenidoNotasGrupo();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "vínculo" || palabra1 == "vínculos" || palabra1 == "vinculo" || palabra1 == "vinculos")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "imagen" || palabra1 == "imagenes" || palabra1 == "imágenes" || palabra1 == "imágen")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "vídeos" || palabra1 == "vídeo" || palabra1 == "video" || palabra1 == "videos")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "carpetascompartidas" || palabra1 == "carpetacompartida" || palabra1 == "carpeta")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "cuenta" || palabra1 == "cuentas")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "comentarios" || palabra1 == "comentario")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "pdf")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "carácterespecial" || palabra1 == "caracterespecial" || palabra1 == "carácteresespeciales" || palabra1 == "caracteresespeciales" || palabra1 == "símbolo" || palabra1 == "simbolo")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "wordart")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "marcadeagua" || palabra1 == "marcasdeagua")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // ----------- APLICAR ------------
                // --------------------------------
                else if (acccion == "Aplicar")
                {
                    if (palabra1 == "diseñosdefondo" || palabra1 == "diseñosdefondos" || palabra1 == "fondos" || palabra1 == "fondo")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearDiseñosParaMensajes();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // ----------- BUSCAR -------------
                // --------------------------------
                else if (acccion == "Buscar")
                {
                    if (palabra1 == "correo" || palabra1 == "correos" || palabra1 == "mensaje" || palabra1 == "mensajes" || palabra1 == "correoelectronico")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "nombres" || palabra1 == "nombre" || palabra1 == "personas" || palabra1 == "persona")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "contacto" || palabra1 == "contactos" || palabra1 == "emails" || palabra1 == "email")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // ----------- CAMBIAR ------------
                // --------------------------------
                else if (acccion == "Cambiar")
                {
                    if (palabra1 == "firma" || palabra1 == "firmas")
                    {
                        reply.Attachments = RespuestasOutlook.GetFirma();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "cita" || palabra1 == "citas" || palabra1 == "eventos" || palabra1 == "evento" || palabra1 == "reunión" || palabra1 == "reuniones")
                    {
                        reply.Attachments = RespuestasOutlook.GetCambiarZonaHorariaCita();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "modo" || palabra1 == "apariencia")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "vista" || palabra1 == "vistas")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "sonido" || palabra1 == "sonidos")
                    {
                        reply.Attachments = RespuestasOutlook.GetBuscarsCorreoContactos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "color" || palabra1 == "colores" || palabra1 == "fuente" || palabra1 == "fuentes")
                    {
                        reply.Attachments = RespuestasOutlook.GetCambiarTema();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "tamañodefuente" || palabra1 == "tamañosdefuentes" || palabra1 == "tamaño de fuente")
                    {
                        reply.Attachments = RespuestasOutlook.GetDefinirFuente();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "configuración" || palabra1 == "configuracion" || palabra1 == "configuraciones")
                    {
                        reply.Attachments = RespuestasOutlook.GetCambiarConfiguracionVisualizacionCorreo();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "ubicación" || palabra1 == "ubicaciones" || palabra1 == "ubicacion")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "nivel" || palabra1 == "niveles")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // ----------- CARGAR -------------
                // --------------------------------
                else if (acccion == "Cargar")
                {
                }
                // ---------- COMPARTIR -----------
                // --------------------------------
                else if (acccion == "Compartir")
                {
                }
                // ----------- COPIAR -------------
                // --------------------------------
                else if (acccion == "Copiar")
                {
                }
                // ------------ CREAR -------------
                // --------------------------------
                else if (acccion == "Crear")
                {
                    if (palabra1 == "firma" || palabra1 == "firmas")
                    {
                        reply.Attachments = RespuestasOutlook.GetFirma();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "categoría" || palabra1 == "categoria" || palabra1 == "categorias" || palabra1 == "categorías")
                    {
                        reply.Attachments = RespuestasOutlook.GetUtiliceCategoriasOutlook();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "plantilla" || palabra1 == "plantillas")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearPlantilla();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "carpeta" || palabra1 == "carpetas")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearUsarCarpetasPersonales();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "tarea" || palabra1 == "tareas")
                    {
                        reply.Attachments = RespuestasOutlook.GetCreandoAsignandoTareas();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "grupo" || palabra1 == "grupos")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearGrupo();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "diseño" || palabra1 == "diseños")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearDiseños();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "evento" || palabra1 == "eventos")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearEvento();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "vista" || palabra1 == "vistas")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else if (palabra1 == "correo" || palabra1 == "correos" || palabra1 == "mensaje" || palabra1 == "mensajes" || palabra1 == "correoelectronico")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearMensaje();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "cita" || palabra1 == "citas" || palabra1 == "eventos" || palabra1 == "evento" || palabra1 == "reunión" || palabra1 == "reuniones")
                    {
                        reply.Attachments = RespuestasOutlook.GetCrearAgregarCitaEvento();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "nombres" || palabra1 == "nombre" || palabra1 == "personas" || palabra1 == "persona")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarYBloquearContactos();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else if (palabra1 == "contacto" || palabra1 == "contactos" || palabra1 == "emails" || palabra1 == "email")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarYBloquearContactos();
                        await context.PostAsync(confirmacionRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // --------- DEFINICION -----------
                // --------------------------------
                else if (acccion == "Definicion")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // --------- DESACTIVAR -----------
                // --------------------------------
                else if (acccion == "Desactivar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- DESPEDIDA -----------
                // --------------------------------
                else if (acccion == "Despedida")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ----------- EDITAR -------------
                // --------------------------------
                else if (acccion == "Editar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- ELIMINAR ------------
                // --------------------------------
                else if (acccion == "Eliminar")
                {
                    if (palabra1 == "categoría" || palabra1 == "categoria" || palabra1 == "categorias" || palabra1 == "categorías")
                    {
                        reply.Attachments = RespuestasOutlook.GetAgregarEditarEliminarCategoriaBusiness();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // ---------- ENCONTRAR -----------
                // --------------------------------
                else if (acccion == "Encontrar")
                {
                }
                // ----------- ENVIAR -------------
                // --------------------------------
                else if (acccion == "Enviar")
                {
                    if (palabra1 == "respuestasautomaticas" || palabra1 == "respuestaautomatica" || palabra1 == "respuestasautomáticas" || palabra1 == "respuestaautomática" || palabra1 == "respuestasfuera" || palabra1 == "respuestafuera")
                    {
                        await context.PostAsync(preguntaNoEncontrada);
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetConsultaV2();
                        await context.PostAsync("Lo siento, no tengo otra respuesta");

                        await context.PostAsync(reply);

                        return;
                    }
                }
                // --------- ESTABLECER -----------
                // --------------------------------
                else if (acccion == "Establecer")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync("Lo siento, no tengo otra respuesta");

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- EXPORTAR ------------
                // --------------------------------
                else if (acccion == "Exportar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync("Lo siento, no tengo otra respuesta");

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- GUARDAR -------------
                // --------------------------------
                else if (acccion == "Guardar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync("Lo siento, no tengo otra respuesta");

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- IMPORTAR ------------
                // --------------------------------
                else if (acccion == "Importar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- IMPRIMIR ------------
                // --------------------------------
                else if (acccion == "Imprimir")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ----------- MOVER --------------
                // --------------------------------
                else if (acccion == "Mover")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ----------- OBTENER ------------
                // --------------------------------
                else if (acccion == "Obtener")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- PROTEGER ------------
                // --------------------------------
                else if (acccion == "Proteger")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // --------- RECUPERAR ------------
                // --------------------------------
                else if (acccion == "Recuperar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- REVISAR -------------
                // --------------------------------
                else if (acccion == "Revisar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // -------- SINCRONIZAR -----------
                // --------------------------------
                else if (acccion == "Sincronizar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // --------- SOLUCIONAR -----------
                // --------------------------------
                else if (acccion == "Solucionar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ---------- TRABAJAR ------------
                // --------------------------------
                else if (acccion == "Trabajar")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ------------ USAR --------------
                // --------------------------------
                else if (acccion == "Usar")
                {
                    if (palabra1 == "graficos" || palabra1 == "grafico" || palabra1 == "gráficos" || palabra1 == "gráfico")
                    {
                        reply.Attachments = RespuestasOutlook.GetUsarGráficos();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);
                    }
                }
                // ------------ VER ---------------
                // --------------------------------
                else if (acccion == "Ver")
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync(preguntaNoEncontrada);

                    await context.PostAsync(reply);

                    return;
                }
                // ------ NO SE TIENE ACCION ------
                // --------------------------------
                else
                {
                    reply.Attachments = Respuestas.GetConsultaV2();
                    await context.PostAsync("Lo siento, ocurrio un error inesperado");

                    await context.PostAsync(reply);

                    return;
                }
            }
            // Si el usuario a realizado un pregunta incorrecta
            else if (estadoPregunta == "False")
            {
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Lo siento, no entendí lo que escribiste, acaso tienes una consulta?");

                await context.PostAsync(reply);

                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                return;
            }
            // El usuario no a realizado una pregunta
            else
            {
                reply.Attachments = Respuestas.GetConsultaV2();
                await context.PostAsync("Lo siento, acaso tienes una consulta");

                await context.PostAsync(reply);

                context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                return;
            }
        }
Ejemplo n.º 30
0
        public async Task StartAsync()
        {
            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

            var estadoPregunta  = "True";
            var estadoPregunta2 = "False";
            var accion          = "Eliminar";

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

            var estadoRespuesta  = "True";
            var estadoRespuesta2 = "False";

            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             = "si tiene otra consulta por favor hágamelo saber";

            // 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(" ", "");
                context.PrivateConversationData.SetValue <string>("Palabra1", palabra1);
                // -------------------------------------------------------------------
                if (palabra1 == "categoría" || palabra1 == "categorías" || palabra1 == "categoria" || palabra1 == "categorias")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "color")
                        {
                            reply.Attachments = RespuestasOutlook.GetEliminarCategoriaColor();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasOutlook.GetEliminarCategoriaColor();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasOutlook.GetEliminarCategoriaColor();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "archivos" || palabra1 == "archivo" || palabra1 == "carpetas" || palabra1 == "carpeta")
                {
                    reply.Attachments = RespuestasOneDrive.GetEliminarArchivosCarpetasOneDrive();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "comentario" || palabra1 == "comentarios")
                {
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word")
                        {
                            reply.Attachments = RespuestasWord.GetQuitarComentariosWord();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetEliminarComentariosPowerPoint();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;

                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetEliminarComentarios();
                            await context.PostAsync($"Lo siento, {serv} no esta registrado, consulte otra vez el servicio escribiendo ayuda");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetQuitarComentariosWord();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "PowerPoint")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetEliminarComentariosPowerPoint();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = Respuestas.GetEliminarComentarios();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta2);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "marca" || palabra1 == "marcas" || palabra1 == "marcasderevisión" || palabra1 == "marcasderevision")
                {
                    reply.Attachments = RespuestasWord.GetQuitarMarcasRevision();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "hipervínculo" || palabra1 == "hipervinculo" || palabra1 == "hipervínculos" || palabra1 == "hipervinculos")
                {
                    reply.Attachments = RespuestasWord.GetQuitarHipervinculos();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "salto" || palabra1 == "saltos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "página" || palabra2 == "pagina")
                        {
                            reply.Attachments = RespuestasWord.GetQuitarSaltoPagina();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (palabra2 == "sección" || palabra2 == "seccion")
                        {
                            reply.Attachments = RespuestasWord.GetEliminarSaltoSeccion();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasWord.GetQuitarSaltoPaginaEliminarSaltoSeccion();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, tal vez no escribió correctamente la palabra '{palabra2}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasWord.GetQuitarSaltoPaginaEliminarSaltoSeccion();
                    await context.PostAsync(preguntaNoRegistrada2);

                    await context.PostAsync(opcionSecundarioDeRespuesta2);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "número" || palabra1 == "numero" || palabra1 == "números" || palabra1 == "numeros")
                {
                    reply.Attachments = RespuestasWord.GetQuitarNumerosPagina();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "encabezados" || palabra1 == "encabezado" || palabra1 == "piedepágina" || palabra1 == "piedepagina" || palabra1 == "piesdepágina" || palabra1 == "piesdepagina")
                {
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word")
                        {
                            reply.Attachments = RespuestasWord.GetEliminarCambiarEncabezadoPiePagina();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetEliminarCambiarInformacionEncabezadoPiePagina();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetEliminarCambiarEncabezadoPiePaginaWordPowerPoint();
                            await context.PostAsync($"Lo siento, {serv} no esta registrado, consulte otra vez el servicio escribiendo ayuda");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            return;
                        }
                    }
                    // No se detectó el 'servicio' de la pregunta
                    // Se obtiene el servicio que esta guardado en cache
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetEliminarCambiarEncabezadoPiePagina();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "Power Point" || servicio == "PowerPoint")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetEliminarCambiarInformacionEncabezadoPiePagina();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("tipoServicio", "PowerPoint");
                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        reply.Attachments = RespuestasPowerPoint.GetEliminarCambiarEncabezadoPiePaginaWordPowerPoint();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta1);

                        await context.PostAsync(reply);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        return;
                    }
                }
                else if (palabra1 == "marcadeagua" || palabra1 == "marcasdeagua")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "word")
                        {
                            reply.Attachments = RespuestasWord.GetQuitarMarcaAgua();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetQuitarMarcaAguaDiapositivas();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "PowerPoint");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetQuitarMarcaAgua();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetQuitarMarcaAgua();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "PowerPoint")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetQuitarMarcaAguaDiapositivas();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = Respuestas.GetQuitarMarcaAgua();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "contraseña" || palabra1 == "contraseñas")
                {
                    // Recorrido de 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 == "archivos" || palabra2 == "archivos" || palabra2 == "documento" || palabra2 == "documentos" || palabra2 == "hoja" || palabra2 == "hojas" || palabra2 == "libro" || palabra2 == "libros")
                        {
                            reply.Attachments = RespuestasExcel.GetQuitarContrasenaHojaCalculolibroExcel();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetQuitarContrasenaHojaCalculolibroExcel();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetQuitarContrasenaHojaCalculolibroExcel();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "valor" || palabra1 == "valores" || palabra1 == "variable" || palabra1 == "variables" || palabra1 == "palabra" || palabra1 == "palabras")
                {
                    // Recorrido de 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 == "duplicado" || palabra2 == "duplicados" || palabra2 == "duplicada" || palabra2 == "duplicadas")
                        {
                            reply.Attachments = RespuestasExcel.GetQuitarValoresDuplicados();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetQuitarValoresDuplicados();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetQuitarValoresDuplicados();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "duplicados" || palabra1 == "duplicado")
                {
                    reply.Attachments = RespuestasExcel.GetQuitarValoresDuplicados();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "borde" || palabra1 == "bordes")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "celda" || palabra2 == "celdas")
                        {
                            reply.Attachments = RespuestasExcel.GetInsertarQuitarBordesCeldaHojaCalculo();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasExcel.GetInsertarQuitarBordesCeldaHojaCalculo();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = RespuestasExcel.GetInsertarQuitarBordesCeldaHojaCalculo();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "formato" || palabra1 == "formatos")
                {
                    // Recorrido del Servicio de la pregunta
                    foreach (var entity in result.Entities.Where(Entity => Entity.Type == "Servicio"))
                    {
                        var serv = entity.Entity.ToLower().Replace(" ", "");
                        if (serv == "excel")
                        {
                            reply.Attachments = RespuestasExcel.GetQuitarFormatoCondicionalExcel();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Excel");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "word")
                        {
                            reply.Attachments = RespuestasWord.GetBorrarFormatoTexto();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "Word");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else if (serv == "powerpoint")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetBorrarFormatoTexto();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("tipoServicio", "PowerPoint");
                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = Respuestas.GetBorrarFormatoWordExcel();
                            await context.PostAsync($"Lo siento, su pregunta no esta registrada, no se tiene registrado el servicio '{serv}'?");

                            await context.PostAsync(opcionSecundarioDeRespuesta2);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    //obtener el producto si este a sido escodigo anteriormente
                    var servicio = "Servicio";
                    context.PrivateConversationData.TryGetValue <string>("tipoDeServicio", out servicio);
                    if (servicio == "Excel")
                    {
                        reply.Attachments = RespuestasExcel.GetQuitarFormatoCondicionalExcel();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "Word")
                    {
                        reply.Attachments = RespuestasWord.GetBorrarFormatoTexto();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else if (servicio == "PowerPoint")
                    {
                        reply.Attachments = RespuestasPowerPoint.GetBorrarFormatoTexto();
                        await context.PostAsync(confirmacionRespuesta1);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                    else
                    {
                        // No se detectó la segunda parte de la pregunta
                        reply.Attachments = Respuestas.GetBorrarFormatoWordExcel();
                        await context.PostAsync(preguntaNoRegistrada1);

                        await context.PostAsync(opcionSecundarioDeRespuesta2);

                        await context.PostAsync(reply);

                        await context.PostAsync(preguntaConsulta);

                        context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                        context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                        return;
                    }
                }
                else if (palabra1 == "diapositiva" || palabra1 == "diapositivas")
                {
                    reply.Attachments = RespuestasPowerPoint.GetEliminarDiapositivas();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else if (palabra1 == "efecto" || palabra1 == "efectos")
                {
                    foreach (var entityP2 in result.Entities.Where(Entity => Entity.Type == "Pregunta::Palabra2"))
                    {
                        var palabra2 = entityP2.Entity.ToLower().Replace(" ", "");
                        if (palabra2 == "animación" || palabra2 == "animacion" || palabra2 == "animaciones")
                        {
                            reply.Attachments = RespuestasPowerPoint.GetQuitarEfectoAnimacion();
                            await context.PostAsync(confirmacionRespuesta1);

                            await context.PostAsync(reply);

                            await context.PostAsync(preguntaConsulta);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                        else
                        {
                            reply.Attachments = RespuestasPowerPoint.GetQuitarEfectoAnimacion();
                            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);

                            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                            return;
                        }
                    }
                    // No se detectó la segunda parte de la pregunta
                    reply.Attachments = reply.Attachments = RespuestasPowerPoint.GetQuitarEfectoAnimacion();
                    await context.PostAsync(preguntaNoRegistrada1);

                    await context.PostAsync(opcionSecundarioDeRespuesta1);

                    await context.PostAsync(reply);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    return;
                }
                else if (palabra1 == "animación" || palabra1 == "animacion" || palabra1 == "animaciones")
                {
                    reply.Attachments = RespuestasPowerPoint.GetQuitarEfectoAnimacion();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta);
                    return;
                }
                else
                {
                    await context.PostAsync(preguntaNoRegistrada2);

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

                    context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
                    context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
                    return;
                }
            }
            // No se detectó la primera parte de la pregunta
            await context.PostAsync(preguntaNoRegistrada2);

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

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

            context.PrivateConversationData.SetValue <string>("EstadoPregunta", estadoPregunta2);
            context.PrivateConversationData.SetValue <string>("EstadoRespuesta", estadoRespuesta2);
            return;
        }