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