Example #1
0
        public async Task StartAsync()
        {
            var accion = "Editar";

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

            var reply = context.MakeMessage();

            reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;

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

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

                    await context.PostAsync(preguntaConsulta);

                    //context.Wait(MessageReceived);
                    return;
                }
                else if (palabra1 == "grupos" || palabra1 == "grupo")
                {
                    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(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                        else
                        {
                            await context.PostAsync($"¿{palabra2}?, por favor vuelva a escribir la consulta correctamente");

                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como editar un grupo de contactos, " + c.proponer());

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

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

                    return;
                }
                else if (palabra1 == "listas" || palabra1 == "lista")
                {
                    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(reply);

                            await context.PostAsync(preguntaConsulta);

                            return;
                        }
                        else
                        {
                            await context.PostAsync($"¿{palabra2}?, por favor vuelva a escribir la consulta correctamente");

                            return;
                        }
                    }
                    await context.PostAsync($"Quizás desea saber como editar su lista de distribución, " + c.proponer());

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

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

                    return;
                }
                else if (palabra1 == "pdf")
                {
                    reply.Attachments = RespuestasWord.GetEditarContenidoPdfWord();
                    await context.PostAsync(confirmacionRespuesta1);

                    await context.PostAsync(reply);

                    await context.PostAsync(preguntaConsulta);

                    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);

                            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);

                            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);

                    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);

                    return;
                }
                else
                {
                    await context.PostAsync($"Lo siento, su pregunta no esta registrada");

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

                    return;
                }
            }
            // Si el usuario no ingreso la segunda parte de la pregunta
            await context.PostAsync($"Lo siento, su pregunta no esta registrada");

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

            return;
        }
Example #2
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;
        }