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 handle(Messaging message) { try { long id = message.sender.id; PayloadData payload = new PayloadData(message.postback.payload); //Console.WriteLine(payload); switch (payload.Payload) { case "GET_STARTED_PAYLOAD": rmanager.SendWelcomeMessage(id, payload.Language); break; case "SEND_LOCATION_CHOICE": rmanager.SendLocationsChoice(id, payload.Language); break; // tijd keuze extra case "SEND_DATE_CHOICE": rmanager.SendDateChoice(message.sender.id, payload.Language); break; case "DEVELOPER_DEFINED_DATE_SPECIFIC": rmanager.SendDayOption(message.sender.id, payload.Language); break; case "SEND_LANGUAGE_OPTIONS": rmanager.ChangeLanguage(message.sender.id); break; case "GET_TOILET": string[] co = payload.Value.Split(':'); SearchableLocation location = DataConstants.GetClosestsToilet(double.Parse(co[0]), double.Parse(co[1])); // Console.WriteLine($"Closest location found: {location.PrettyName} "); rmanager.SendGenericMessage(LocationFactory.MakeLocationResponse(id, location.Lat, location.Lon, payload.Language)); break; case "SET_LANGUAGE": rmanager.SendWelcomeMessage(id, payload.Value); break; case "GET_USER_LOCATION": if (!string.IsNullOrWhiteSpace(payload.Value) && payload.Value == "true") { TempUserData.Instance.Add(id, payload.Language, true); } else { TempUserData.Instance.Add(id, payload.Language, false); } rmanager.SendGetLocationButton(message.sender.id, payload.Language); break; case "DEVELOPER_DEFINED_SEARCHFALSE": rmanager.SendInfoForEnding(message.sender.id, payload.Language); break; case "GET_EVENT_HERE_NOW": rmanager.SendLocationQuery(id, int.Parse(payload.Value), payload.Language); break; case "DEVELOPER_DEFINED_LOCATION": if (payload.Value != "ALL") { RemoteDataManager.GetInstance().GetEventsHereNow(id, DataConstants.GetLocation(payload.Value).Id, DataConstants.Now, payload.Language); } else { RemoteDataManager.GetInstance().GetEventsNow(id, payload.Language, DataConstants.Now); } break; case "DEVELOPER_DEFINED_DAY": rmanager.SendTimePeriod(id, payload.Value, payload.Language); break; case "DEVELOPER_DEFINED_COORDINATES": string[] data = payload.Value.Split(':'); List <SearchableLocation> locatio = DataConstants.GetClosestLocation(new Coordinates { lat = double.Parse(data[1]), lon = double.Parse(data[0]) }, 3); // Console.WriteLine($"Closest location found: {location.PrettyName} "); rmanager.SendLocationResult(id, locatio, payload.Language); break; case "DEVELOPER_DEFINED_DESCRIPTION": rmanager.SendTextMessage(id, payload.Value); break; case "DEVELOPER_DEFINED_HOURS": string[] dat = payload.Value.Split('|'); rmanager.SendHoursChoice(id, dat[0], dat[1], payload.Language); break; case "DEVELOPER_DEFINED_HOURS_COMP": string[] da = payload.Value.Split('|'); payload.Value = $"{da[1]}{da[0]}:00+02:00"; //rmanager.SendTextMessage(id, value); //Console.WriteLine("Datum: " + payload.Value); RemoteDataManager.GetInstance().GetEventsAtTime(id, payload.Value, payload.Language); break; case "DEVELOPER_DEFINED_NEXT": // moet nog normaal gezet worden maar voor test gevallen is het deze tijd int pos = payload.Value.IndexOf("-_-"); RemoteDataManager.GetInstance().GetNextEvents(payload.Value.Substring(0, pos), payload.Value.Substring(pos + 3), 3, id, payload.Language); break; default: //do nothing break; } } catch (Exception ex) { Console.WriteLine(ex); } }