private Task ExecuteCommand(string data) { return(Task.Factory.StartNew(() => { try { ViberCallbackEvent callbackEvent = JsonSerializer.Deserialize <ViberCallbackEvent>(data); if (callbackEvent != null) { var response = ""; switch (callbackEvent.typeCallback.ToLower()) { case "message": response = onMessage(callbackEvent); break; case "conversation_started": response = onConversationStarted(callbackEvent); break; } } } catch (Exception e) { context.logs.Add(new Log(e.Message, e.StackTrace)); context.SaveChanges(); } })); }
private string onMessage(ViberCallbackEvent callbackEvent) { var command = Bot.instanse.GetCommand(callbackEvent.message.text); if (command != null) { return(command.Execute(callbackEvent, context)); } else { context.logs.Add(new Log("WebHook", $"Команда {command} не найдена.")); context.SaveChanges(); return("Команда не найдена"); } }
public override string Execute(ViberCallbackEvent callbackEvent, object obj = null) { var receiver = callbackEvent.senderId; return(Utils.SendTextMessage(receiver, $"Привет! Я чат бот для Viber. К сожалению я всего лишь машина и могу отвечать только на заданные команды. Список команд можно вывести отправив мне сообщение с текстом {Command.startChar}{new HelpCommand().commandName}.")); }
private string onConversationStarted(ViberCallbackEvent callbackEvent) { var command = new HelloCommand(); return(command.Execute(callbackEvent, context)); }
public abstract string Execute(ViberCallbackEvent callbackEvent, object obj = null);