public definitionsSay buscarTest([FromForm] string Memory) { var jsonObject = new JObject(); dynamic d = JObject.Parse(Memory); string filter = d.twilio.collected_data.collect_buscar_producto.answers.producto_busqueda.answer; Root products; var client = new RestClient("https://ezelab.myshopify.com/admin/api/2020-10/products.json?fields=id,images,title,handle,variants"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Basic Y2Y5Yjc1MjQ5YjkzMDhiODdkOGIyNmI4OGM2NzEzYTA6c2hwcGFfMDkxMWNkODBhMzYzMmQ5MzEyODE5MTM5ZDJiYTkzOWY="); request.AddHeader("Cookie", "_master_udr=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaEpJaWszTUdFMFpUSTBaQzFrT1RZeExUUTFaV0V0WVRjNFppMWtOMkV6TnpFd1lqQm1OMllHT2daRlJnPT0iLCJleHAiOiIyMDIyLTA3LTAzVDIwOjEyOjQyLjA1N1oiLCJwdXIiOiJjb29raWUuX21hc3Rlcl91ZHIifX0%3D--1e7946d971f744818706ad361f949d1fb9718c68; _secure_admin_session_id_csrf=86009cb6da5c57a5eac86a9ea2dc0447; _secure_admin_session_id=86009cb6da5c57a5eac86a9ea2dc0447; __cfduid=d3fa2dbec9914f470e845022dbb39e1d71593806347; _orig_referrer=https%3A%2F%2Fcf9b75249b9308b87d8b26b88c6713a0%3A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%40ezelab.myshopify.com%2Fadmin%2Fapi%2F2020-07%2Fproducts.json%26fields%3Dchivas; _shopify_y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _landing_page=%2Fadmin%2Fauth%2Flogin"); IRestResponse response = client.Execute(request); products = JsonConvert.DeserializeObject <Root>(response.Content); definitionsSay twilio = new definitionsSay(); List <Action> actions = new List <Action>(); List <Product> list = products.products.Where(x => x.title.ToUpper().Replace("'", "").Contains(filter.Replace("'", "").ToUpper())).ToList(); if (list.Count > 0) { foreach (Product p in list) { Actionshow a = new Actionshow(); Show s = new Show(); s.body = p.title + " Precio: $" + p.variants[0].price; s.images = new List <a2klab.Controllers.Image>(); a2klab.Controllers.Image image = new a2klab.Controllers.Image(); image.label = "Url del producto"; image.url = p.images[0].src; s.images.Add(image); a.show = s; actions.Add(a); ActionSay say = new ActionSay(); say.say = "La url para comprar el producto es: https://ezelab.myshopify.com/products/" + p.handle; actions.Add(say); } } else { ActionSay say = new ActionSay(); say.say = "No encontré nada con el nombre " + filter + ", prueba con *Productos y Servicios* y te voy a mostrar que podes comprar."; actions.Add(say); } twilio.actions = actions; return(twilio); }
/// <summary> /// Retorna todos los productos /// </summary> /// <remarks> /// TODO: IMPLEMENTAR CHACHE SI O SI!! /// </remarks> private definitionsSay todosProductos() { Root products; var client = new RestClient("https://ezelab.myshopify.com/admin/api/2020-10/products.json?fields=id,images,title,handle,variants"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Basic Y2Y5Yjc1MjQ5YjkzMDhiODdkOGIyNmI4OGM2NzEzYTA6c2hwcGFfMDkxMWNkODBhMzYzMmQ5MzEyODE5MTM5ZDJiYTkzOWY="); request.AddHeader("Cookie", "_master_udr=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaEpJaWszTUdFMFpUSTBaQzFrT1RZeExUUTFaV0V0WVRjNFppMWtOMkV6TnpFd1lqQm1OMllHT2daRlJnPT0iLCJleHAiOiIyMDIyLTA3LTAzVDIwOjEyOjQyLjA1N1oiLCJwdXIiOiJjb29raWUuX21hc3Rlcl91ZHIifX0%3D--1e7946d971f744818706ad361f949d1fb9718c68; _secure_admin_session_id_csrf=86009cb6da5c57a5eac86a9ea2dc0447; _secure_admin_session_id=86009cb6da5c57a5eac86a9ea2dc0447; __cfduid=d3fa2dbec9914f470e845022dbb39e1d71593806347; _orig_referrer=https%3A%2F%2Fcf9b75249b9308b87d8b26b88c6713a0%3A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%40ezelab.myshopify.com%2Fadmin%2Fapi%2F2020-07%2Fproducts.json%26fields%3Dchivas; _shopify_y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _landing_page=%2Fadmin%2Fauth%2Flogin"); IRestResponse response = client.Execute(request); products = JsonConvert.DeserializeObject <Root>(response.Content); definitionsSay twilio = new definitionsSay(); List <Action> actions = new List <Action>(); foreach (Product p in products.products) { Actionshow a = new Actionshow(); //a.say = p.title; //a.say = "Este es nuestro listado de productos: "; Show s = new Show(); s.body = p.title + " Precio: $" + p.variants[0].price; s.images = new List <a2klab.Controllers.Image>(); a2klab.Controllers.Image image = new a2klab.Controllers.Image(); image.label = "Url del producto"; image.url = p.images[0].src; s.images.Add(image); a.show = s; actions.Add(a); } twilio.actions = actions; return(twilio); }
public async Task <definitionsSay> obtenerPromos([FromForm] string Memory) { //var jsonObject = new JObject(); //dynamic d = JObject.Parse(Memory); //string filter = d.twilio.collected_data.collect_listarproducto.answers.nombre_coleccion.answer; // Si eligió ver todos respondo de inmediato. // if(filter.ToUpper().Contains("TODOS")) // { // } var promos = await _cosmoService.GetAllAsync("SELECT * FROM c"); List <Promocion> pr = promos.ToList(); definitionsSay twilio = new definitionsSay(); List <Action> actions = new List <Action>(); foreach (Promocion p in pr) { Actionshow a = new Actionshow(); Show s = new Show(); s.body = "*" + p.Nombre + "* - " + p.Descripcion; s.images = new List <a2klab.Controllers.Image>(); a2klab.Controllers.Image image = new a2klab.Controllers.Image(); image.label = p.LinkUrl; image.url = p.LinkImagen; s.images.Add(image); a.show = s; actions.Add(a); } twilio.actions = actions; return(twilio); }
public definitionsSay buscarColleccionesTest([FromForm] string Memory) { //var jsonObject = new JObject(); //dynamic d = JObject.Parse(Memory); //string filter = d.twilio.collected_data.collect_buscar_producto.answers.producto_busqueda.answer; sCollection collections; var client = new RestClient("https://ezelab.myshopify.com/admin/api/2020-10/smart_collections.json?fields=id,title,handle"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Basic Y2Y5Yjc1MjQ5YjkzMDhiODdkOGIyNmI4OGM2NzEzYTA6c2hwcGFfMDkxMWNkODBhMzYzMmQ5MzEyODE5MTM5ZDJiYTkzOWY="); request.AddHeader("Cookie", "_master_udr=eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaEpJaWszTUdFMFpUSTBaQzFrT1RZeExUUTFaV0V0WVRjNFppMWtOMkV6TnpFd1lqQm1OMllHT2daRlJnPT0iLCJleHAiOiIyMDIyLTA3LTAzVDIwOjEyOjQyLjA1N1oiLCJwdXIiOiJjb29raWUuX21hc3Rlcl91ZHIifX0%3D--1e7946d971f744818706ad361f949d1fb9718c68; _secure_admin_session_id_csrf=86009cb6da5c57a5eac86a9ea2dc0447; _secure_admin_session_id=86009cb6da5c57a5eac86a9ea2dc0447; __cfduid=d3fa2dbec9914f470e845022dbb39e1d71593806347; _orig_referrer=https%3A%2F%2Fcf9b75249b9308b87d8b26b88c6713a0%3A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%40ezelab.myshopify.com%2Fadmin%2Fapi%2F2020-07%2Fproducts.json%26fields%3Dchivas; _shopify_y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _y=88933032-3e5f-4ae7-8cd5-e2a4b8020e51; _landing_page=%2Fadmin%2Fauth%2Flogin"); IRestResponse response = client.Execute(request); collections = JsonConvert.DeserializeObject <sCollection>(response.Content); definitionsSay twilio = new definitionsSay(); List <Action> actions = new List <Action>(); List <SmartCollection> list = collections.smart_collections; if (list.Count > 0) { ActionQuestion question = new ActionQuestion(); Collect c = new Collect(); c.name = "collect_listarproducto"; List <Question> qs = new List <Question>(); Question q = new Question(); q.name = "nombre_coleccion"; q.question = "Genial, que es lo que mas te interesa de todo esto?"; foreach (SmartCollection sm in list) { q.question += "\n - *" + sm.title + "*"; } q.question += "\n - *Ver todos los productos*"; q.type = ""; qs.Add(q); c.questions = qs; OnComplete o = new OnComplete(); Redirect r = new Redirect(); r.method = "POST"; r.uri = "https://a2klab.azurewebsites.net/api/Shopify/obtenerColleccion"; o.redirect = r; c.on_complete = o; question.collect = c; actions.Add(question); } else { Actionshow a = new Actionshow(); Show s = new Show(); s.body = "No encontré nada para ofrecerte"; a.show = s; actions.Add(a); ActionSay say = new ActionSay(); say.say = "En que mas te puedo ayudar?"; actions.Add(say); } twilio.actions = actions; return(twilio); }
public definitionsSay flight([FromForm] string Memory) { var jsonObject = new JObject(); dynamic d = JObject.Parse(Memory.Replace("messaging.whatsapp", "messaging_whatsapp")); string phone = d.twilio.messaging_whatsapp.From; string filter = d.twilio.collected_data.collect_estado_vuelo.answers.vuelo_busqueda.answer; string filterOriginal = filter.ToUpper(); var client = new RestClient("https://api.aa2000.com.ar/api/Vuelos?idarpt=EZE"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("key", globalK.Replace("pelufo/", "")); IRestResponse response = client.Execute(request); List <Flight> vuelos = JsonConvert.DeserializeObject <List <Flight> >(response.Content); filter = Tokenize(filter); // Tokenizo el texto // Replica filtro y busco en la list original List <Flight> list = vuelos; definitionsSay twilio = new definitionsSay(); List <Action> actions = new List <Action>(); if (!filter.Trim().Equals("") && (vuelos.Count > 0)) { // Se fija si alguna aerolínea coincide list = vuelos.Where(x => x.aerolinea.ToUpper().Replace(" ", "").Replace("S", "").Contains(filter.ToUpper().Replace(" ", "").Replace("S", ""))).ToList(); // Si no es una aerolínea busco por el destino u origen list = (list.Count == 0)? vuelos.Where(x => x.destorig.ToUpper().Replace(" ", "").Contains(filter.ToUpper().Replace(" ", ""))).ToList() : list; // Si no encontré nada busco por el numero de vuelo list = (list.Count == 0)? vuelos.Where(x => (x.idaerolinea.ToUpper() + x.nro.ToUpper()).Replace("-", "").Replace(" ", "").Contains(filter.ToUpper().Replace("-", "").Replace(" ", ""))).ToList() : list; if (filterOriginal.Contains("HORA")) // esta preguntando por una hora? { list = (list.Count == 0)? vuelos.Where(x => x.stda.ToUpper().Replace(":", "").Contains(filter.ToUpper().Replace(":", ""))).ToList() : list; } if (list.Count > 1) // Si es mas de uno retorno la lista de opciones pero no lo dejo registrarse { foreach (Flight p in list) { Actionshow a = new Actionshow(); Show s = new Show(); s.body = ((p.mov.Equals("D"))? "*Partida*" : "*Arribo*") + " de la aerolínea *" + p.aerolinea + "*" + "\n - Nro vuelo: " + p.nro + "\n - " + ((p.mov.Equals("D"))? "Con destino: " : "Desde origen: ") + p.destorig + "\n - Hora estimada " + ((p.mov.Equals("D"))? "de partida: ": "de arribo: ") + ((p.term == null) ? "sin estima" : p.term) + "\n - Hora programada: " + p.stda + "\n - " + ((p.mov.Equals("D"))? "Checkin Nro: 0" + p.chk_from + " al 0" + p.chk_to : "Puerta: " + ((p.gate.Equals("") ? "no asignada" : p.gate))) + "\n - Terminal: " + ((p.term == null) ? "no asignada" : p.term) + "\n - Estado: *" + ((p.estes.Equals("")) ? "sin estado" : p.estes) + "*"; s.images = new List <a2klab.Controllers.Image>(); a2klab.Controllers.Image image = new a2klab.Controllers.Image(); image.label = "logo aerolinea"; image.url = "http://a2klab.azurewebsites.net/img/" + p.idaerolinea + "_200.jpg"; s.images.Add(image); a.show = s; actions.Add(a); } ActionSay say = new ActionSay(); say.say = "Esto es lo que he encontrado... Si buscas nuevamente, pero mas especifico puedo avisarte los cambios de estado."; actions.Add(say); } else if (list.Count == 1) // Si es una opción lo dejo registrarse { foreach (Flight p in list) { Actionshow a = new Actionshow(); Show s = new Show(); s.body = ((p.mov.Equals("D"))? "*Partida*" : "*Arribo*") + " de la aerolínea *" + p.aerolinea + "*" + "\n - Nro vuelo: " + p.nro + "\n - " + ((p.mov.Equals("D"))? "Con destino: " : "Desde origen: ") + p.destorig + "\n - Hora estimada " + ((p.mov.Equals("D"))? "de partida: ": "de arribo: ") + ((p.term == null) ? "sin estima" : p.term) + "\n - Hora programada: " + p.stda + "\n - " + ((p.mov.Equals("D"))? "Checkin Nro: 0" + p.chk_from + " al 0" + p.chk_to : "Puerta: " + ((p.gate.Equals("") ? "no asignada" : p.gate))) + "\n - Terminal: " + ((p.term == null) ? "no asignada" : p.term) + "\n - Estado: *" + ((p.estes.Equals("")) ? "sin estado" : p.estes) + "*"; s.images = new List <a2klab.Controllers.Image>(); a2klab.Controllers.Image image = new a2klab.Controllers.Image(); image.label = "logo aerolinea"; image.url = "http://a2klab.azurewebsites.net/img/" + p.idaerolinea + "_200.jpg"; s.images.Add(image); a.show = s; actions.Add(a); Data dto = new Data(); dto.phone = phone; dto.flightId = p.id; dto.flight = p.nro; setData(dto); // Guardo lo que busco ActionQuestion question = new ActionQuestion(); Collect c = new Collect(); c.name = "collect_notificarvuelo"; List <Question> qs = new List <Question>(); Question q = new Question(); q.name = "notificar_sino"; q.question = "Quieres que te avise de los cambios de estado de este vuelo?"; q.type = "Custom.SI_NO"; qs.Add(q); c.questions = qs; OnComplete o = new OnComplete(); Redirect r = new Redirect(); r.method = "POST"; //r.uri = "https://a2klab.azurewebsites.net/api/bot/Test"; r.uri = "https://a2klab.azurewebsites.net/api/Flight/suscribe"; o.redirect = r; c.on_complete = o; question.collect = c; actions.Add(question); } } else // Sino lo mando a freír churros { ActionSay say = new ActionSay(); say.say = "No pude encontrar nada relacionado con " + filter + ", si queres volver a intentarlo indicame *busca vuelo* nuevamente."; actions.Add(say); } } else { ActionSay say = new ActionSay(); say.say = "Aparentemente hay un problema buscando eso (" + filter + "). Si quieres buscar algo mas estare aca..."; actions.Add(say); } twilio.actions = actions; return(twilio); }