public static void CheckText(long id, string text) { string res; if (!string.IsNullOrEmpty(DataConstants.GetLocationBySearchTag(text)?.Id)) { RemoteDataManager.GetInstance().GetEventsHereNow(id, DataConstants.GetLocationBySearchTag(text).Id, DataConstants.Now, "NL"); } else { if (ReplyStore == null) { InitReplies(); } res = GetResponse(text); if (res != null && res.Length > 3) { RMmanager.SendTextMessage(id, res); } if (res.Length < 4) { RMmanager.SendTextMessage(id, DataConstants.GetMessage("INVALID_INPUT", "NL")); } RemoteDataManager.GetInstance().GetEventByName(text, id, "NL"); } }
public void SendLocationQuery(long id, int page, string lang) { try { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); int lastindex = (page * 8 + 8) > DataConstants.Locations.Count ? DataConstants.Locations.Count : (page * 8 + 8); for (int i = page * 8; i < lastindex; i++) { string l = DataConstants.Locations[i].PrettyName; reply.Add(new QuickReply("text", l, "DEVELOPER_DEFINED_LOCATION°" + l + "°" + lang)); } //Max 10 quickreplies, we got more locations. When at first page, add extra button to show second page if (page == 0) { reply.Add(new QuickReply("text", DataConstants.GetMessage("More", lang), "GET_EVENT_HERE_NOW°" + 1 + "°" + lang)); } else { reply.Add(new QuickReply("text", DataConstants.GetMessage("Previous", lang), "GET_EVENT_HERE_NOW°" + (page - 1) + "°" + lang)); } GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Which_location", lang), reply); //Console.WriteLine("All squares: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); } catch (Exception ex) { //Console.WriteLine(ex); } }
public static GenericMessage makeLocationButton(long id, string lang) { List <SimpleQuickReply> quick_replies = new List <SimpleQuickReply>(); quick_replies.Add(new SimpleQuickReply("location")); String hmess = DataConstants.GetMessage("Pick_map", lang); return(new GenericMessage(id, hmess, quick_replies)); }
public void SendInfoForEnding(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", "Begin opnieuw", "GET_STARTED_PAYLOAD°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Welcome", lang), reply); //Console.WriteLine(api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendLocationsChoice(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", DataConstants.GetMessage("Choose_list", lang), "GET_EVENT_HERE_NOW°0°" + lang)); reply.Add(new QuickReply("text", DataConstants.GetMessage("Choose_card", lang), "GET_USER_LOCATION°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Choose_options", lang), reply); //////Console.WriteLine("Location choice: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendDateChoice(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", DataConstants.GetMessage("Now", lang), "DEVELOPER_DEFINED_LOCATION°ALL°" + lang)); reply.Add(new QuickReply("text", DataConstants.GetMessage("Choice_For_Date", lang), "DEVELOPER_DEFINED_DATE_SPECIFIC°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Date_Choice", lang), reply); //Console.WriteLine("All now or date specific: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendConfirmation(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", DataConstants.GetMessage("Yes", lang), "SEND_LOCATION_CHOICE°°" + lang)); reply.Add(new QuickReply("text", DataConstants.GetMessage("No", lang), "DEVELOPER_DEFINED_SEARCHFALSE°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Other_location", lang), reply); //Console.WriteLine("Confirmation: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendWelcomeMessage(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", DataConstants.GetMessage("Search_location", lang), "SEND_LOCATION_CHOICE°°" + lang)); reply.Add(new QuickReply("text", DataConstants.GetMessage("Search_Date", lang), "SEND_DATE_CHOICE°°" + lang)); reply.Add(new QuickReply("text", "Language", "SEND_LANGUAGE_OPTIONS°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Welcome", lang), reply); //Console.WriteLine("Welcome message: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public static GenericMessage MakeLocationResponse(long id, double lat, double lon, string lang) { string image_url = $"https://maps.googleapis.com/maps/api/staticmap?size=764x400¢er={lat},{lon}&zoom=15&markers={lat},{lon}"; string item_url = $"http://maps.apple.com/maps?q={lat},{lon}&z=16"; LocationElement element = new LocationElement(DataConstants.GetMessage("CLOSEST_TOILET", lang), image_url, "", null, item_url); List <Element> elements = new List <Element>(); elements.Add(element); IPayload payload = new PayloadMessage("generic", elements, true, "horizontal"); Attachment attachment = new Attachment("template", payload); return(new GenericMessage(id, attachment)); }
public void ChangeLanguage(long id) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); reply.Add(new QuickReply("text", "English", "SET_LANGUAGE°EN°" + lang)); reply.Add(new QuickReply("text", "Nederlands", "SET_LANGUAGE°NL°" + lang)); reply.Add(new QuickReply("text", "Gents", "SET_LANGUAGE°GENTS°" + lang)); // reply.Add(new QuickReply("text", "Deutsch", "SET_LANGUAGE°DE°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Choose_Language", "NL"), reply); //Console.WriteLine("Language message: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendLocationResult(long id, List <SearchableLocation> locations, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); foreach (SearchableLocation loc in locations) { reply.Add(new QuickReply("text", loc.PrettyName, $"DEVELOPER_DEFINED_LOCATION°{loc.Name}°{lang}")); } var text = DataConstants.GetMessage("Nearest_location", lang); //$"Je bent het dichtst bij {loc.PrettyName}. Wil je op deze locatie zoeken?" GenericMessage message = new GenericMessage(id, text, reply); //Console.WriteLine("Approval of using this location: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendDayOption(long id, string lang) { List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); string[] data = DataConstants.GetMessage("Day_Block", lang).Split(','); foreach (var block in data) { reply.Add(new QuickReply("text", block, "DEVELOPER_DEFINED_DAY°" + block.Split(' ')[1] + "°" + lang)); } reply.Add(new QuickReply("text", DataConstants.GetMessage("Previous_Block", lang), "SEND_DATE_CHOICE°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Choice_For_Date", lang), reply); //Console.WriteLine("Pick a date: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendTimePeriod(long id, string value, string lang) { // value is om bij te houden opwelke dag ze hebben gekozen List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); string[] data = DataConstants.GetMessage("Time_Block", lang).Split('|'); foreach (var block in data) { string[] blockinfo = block.Split(':'); reply.Add(new QuickReply("text", blockinfo[0], "DEVELOPER_DEFINED_HOURS°" + blockinfo[1] + "|" + value + "°" + lang)); } reply.Add(new QuickReply("text", DataConstants.GetMessage("Previous_Block", lang), "DEVELOPER_DEFINED_DATE_SPECIFIC°°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Time_Periods", lang), reply); //Console.WriteLine("Pick a time block: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendHoursChoice(long id, string looping, string value, string lang) { if (!value.Contains("T")) { value = $"2017-07-{value}T"; } string[] loop = looping.Split('~'); List <SimpleQuickReply> reply = new List <SimpleQuickReply>(); for (int i = Convert.ToInt32(loop[0]); i <= Convert.ToInt32(loop[1]); i++) { string view = (i.ToString().Length == 1) ? "0" + i + ":00" : i + ":00"; reply.Add(new QuickReply("text", view, "DEVELOPER_DEFINED_HOURS_COMP°" + view + "|" + value + "°" + lang)); } reply.Add(new QuickReply("text", DataConstants.GetMessage("Previous_Block", lang), "DEVELOPER_DEFINED_DAY°" + value + "°" + lang)); GenericMessage message = new GenericMessage(id, DataConstants.GetMessage("Time_Periods", lang), reply); //Console.WriteLine("Choice hour: " + api.SendMessageToUser(message).Result); api.SendMessageToUser(message); }
public void SendNoEventFound(long id, string lang) { SendTextMessage(id, DataConstants.GetMessage("Not_found", lang)); }
public static GenericMessage makeCarousel(long id, List <Event> events, string lang) { if (events.Count > 10) { events = events.GetRange(0, 10); } List <Element> elements = new List <Element>(); foreach (var eve in events) { List <IButton> buttons = new List <IButton>(); DefaultAction defaultAction = new DefaultAction("web_url", MakeUrl(eve.name.nl), true); if (!string.IsNullOrWhiteSpace(eve.description.nl)) { if (eve.description.nl.Length < 640) { buttons.Add(new ButtonPayload(DataConstants.GetMessage("What_Is_It", lang), "postback", "DEVELOPER_DEFINED_DESCRIPTION°" + eve.description.nl + "°" + lang)); } else { buttons.Add(new ButtonPayload(DataConstants.GetMessage("What_Is_It", lang), "postback", "DEVELOPER_DEFINED_DESCRIPTION°" + eve.description.nl.Substring(0, 635) + "..." + "°" + lang)); } } buttons.Add(new ButtonPayload(DataConstants.GetMessage("NEXT", lang), "postback", "DEVELOPER_DEFINED_NEXT°" + eve.location + "-_-" + eve.startDate + "°" + lang)); var image = eve.image; if (string.IsNullOrEmpty(image)) { image = "https://chatbot.lab9k.gent/images/default0.png"; } string dates = " "; string juli = $" {DataConstants.GetMessage("MONTH", lang)} "; if (eve.startDate.ToString().Equals(eve.endDate.ToString())) { string[] helpStart = eve.startDate.ToString().Split('T'); string[] daySt = helpStart[0].Split('-'); string[] hourSt = helpStart[1].Split(':'); dates += daySt[2]; dates += juli; dates += hourSt[0]; dates += ":"; dates += hourSt[1]; string[] helpEnd = eve.endDate.ToString().Split('T'); string[] hourEnd = helpEnd[1].Split(':'); dates += " - "; dates += hourEnd[0]; dates += ":"; dates += hourEnd[1]; //dates = $" | {start.Day} juli {start.ToString("HH:mm")} - {end.ToString("HH:mm")}"; } else { string[] helpStart = eve.startDate.ToString().Split('T'); string[] daySt = helpStart[0].Split('-'); string[] hourSt = helpStart[1].Split(':'); dates += daySt[2]; dates += juli; dates += hourSt[0]; dates += ":"; dates += hourSt[1]; string[] helpEnd = eve.endDate.ToString().Split('T'); string[] dayEnd = helpEnd[0].Split('-'); string[] hourEnd = helpEnd[1].Split(':'); dates += " - "; dates += dayEnd[2]; dates += juli; dates += hourEnd[0]; dates += ":"; dates += hourEnd[1]; } buttons.Add(new ButtonShare()); string free = (eve.isAccessibleForFree == true) ? DataConstants.GetMessage("FREE", lang) : DataConstants.GetMessage("NOTFREE", lang); string wheelie = ""; if (!(eve.isWheelchairUnfriendly ?? true)) { wheelie = " | ♿"; } string loc = (DataConstants.GetLocation(eve.location)?.PrettyName ?? (eve.locationName ?? "???")); if (loc.Length > 21) { loc = loc.Substring(0, 20) + "..."; } string subtitle = loc + " | " + dates + " | " + free + wheelie; elements.Add(new Element(eve.name.nl, image, subtitle, buttons, defaultAction)); } IPayload payload = new PayloadMessage("generic", elements, true, "horizontal"); Attachment attachment = new Attachment("template", payload); return(new GenericMessage(id, attachment)); }