private void ResponseAskProject() { var dc = new ProjectDataContext(this.UserCD); var l = new List <IButton>(); foreach (var rProject in dc.CreateProjectList_Get()) { var bt = new PostbackButton(); bt.Title = rProject.DisplayName; var cm = new PayloadCommand(); cm.CommandName = BotCommandName.TaskAdd; cm.MethodName = "SelectProject"; cm.Value = rProject.ProjectCD.ToString(); bt.SetPayload(cm); l.Add(bt); } var cl = new FacebookBotClient(); foreach (var item in ButtonTemplateMessage.Create(this.RecipientID , this.TextManager.Text(BotTextKey.PleaseSelectProject), l)) { cl.SendMessage(item); } }
/// <summary> /// Returns 'true' if payload can be accepted (filter function)/> /// </summary> /// <param name="payload">Given filter</param> /// <returns>Returns 'true' if payload can be accepted</returns> private static bool PayloadCommandPredicate(PayloadCommand payload) { const string key = nameof(MultiThreadingToggle); // check if payload ID == MultiThreadingToggle and data is of type MultiThreadingToggle var res = payload.Id == key && payload.Data is MultiThreadingToggle; return(res); }
public void ResponseCommandListMessage() { var dc = new BotDataContext(this.UserCD); var l = new List <IButton>(); { var bt = new PostbackButton(); bt.Title = this.Text(BotTextKey.AddNewSchedule); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.StartCommand; cm.MethodName = "StartCommand"; cm.Value = nameof(BotCommandName.ScheduleAdd); bt.SetPayload(cm); l.Add(bt); } { var bt = new PostbackButton(); bt.Title = this.Text(BotTextKey.AddNewTask); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.StartCommand; cm.MethodName = "StartCommand"; cm.Value = nameof(BotCommandName.TaskAdd); bt.SetPayload(cm); l.Add(bt); } { var bt = new PostbackButton(); bt.Title = this.Text(BotTextKey.TaskConfirmation); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.StartCommand; cm.MethodName = "StartCommand"; cm.Value = nameof(BotCommandName.TaskComplete); bt.SetPayload(cm); l.Add(bt); } foreach (var item in dc.BotCommand_List_Get()) { if (item.CommandName == BotCommandName.StartCommand) { continue; } var cm = BotCommand.Create(this.RecipientID, this.BotCD, item); var bt = new PostbackButton(); bt.Title = cm.GetText(); bt.SetPayload(BotCommandName.StartCommand, "RestartCommand", item.CommandCD.ToString()); l.Add(bt); } this.SendImage(BotActionType.Greeting); var cl = new FacebookBotClient(); foreach (var item in ButtonTemplateMessage.Create(this.RecipientID , this.TextManager.Text(BotTextKey.CanIHelpYou), l)) { cl.SendMessage(item); } dc.BotCommand_Update(_Record); }
private void ResponseAskUser() { var dc = new ProjectDataContext(this.UserCD); var l = new List <IButton>(); { var rUser = WebApp.Current.DatabaseCache.User.SelectByPrimaryKey(this.UserCD); var bt = new PostbackButton(); bt.Title = this.Text(TextKey.ByMyself); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.TaskAdd; cm.MethodName = "SelectUser"; cm.Value = this.UserCD.ToString(); bt.SetPayload(cm); l.Add(bt); } { var bt = new PostbackButton(); bt.Title = this.Text(TextKey.NotAssigned); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.TaskAdd; cm.MethodName = "SelectUser"; cm.Value = ""; bt.SetPayload(cm); l.Add(bt); } foreach (var item in dc.Project_User_List_Data_Get(this.Data.ProjectCD.Value)) { if (item.UserCD == this.UserCD) { continue; } var rUser = item.User; var bt = new PostbackButton(); bt.Title = rUser.DisplayName; var cm = new PayloadCommand(); cm.CommandName = BotCommandName.TaskAdd; cm.MethodName = "SelectUser"; cm.Value = rUser.UserCD.ToString(); bt.SetPayload(cm); l.Add(bt); } var cl = new FacebookBotClient(); foreach (var item in ButtonTemplateMessage.Create(this.RecipientID , this.TextManager.Text(BotTextKey.PleaseSelectTaskUser), l)) { cl.SendMessage(item); } }
/// <summary> /// Callback for <see cref="PayloadCommand"/> (receiver function) /// </summary> /// <param name="payload"><see cref="PayloadCommand"/></param> private void OnPayloadCommand(PayloadCommand payload) { // cast payload data to MultiThreadingToggle var data = (MultiThreadingToggle)payload.Data; _isMultiThreadingOn = data.IsMultiThreadingOn; // check if multithreading flag is on if (_isMultiThreadingOn) { // start thread queue _threadQueue.Start(); } else { // stop thread queue _threadQueue.Stop(); } }
private void SendCommand(Command command) { if (command == null) { return; } var bytes = new List <byte>(); // Start with the magic sequence bytes.AddRange(_respMagicSequence); bytes.Add(command.CommandId); if (command is AddressedCommand) { bytes.Add(((AddressedCommand)command).TargetAddress.Value); } if (command is PayloadCommand) { PayloadCommand payloadCommand = (PayloadCommand)command; byte[] intBytes = BitConverter.GetBytes(payloadCommand.Length.Value); if (BitConverter.IsLittleEndian) { Array.Reverse(intBytes); } bytes.AddRange(intBytes); bytes.AddRange(payloadCommand.Payload); } foreach (byte b in bytes) { Invoke(new delVoidIntBool(AppendByteToSerialLog), b, false); // false = outbound } Invoke(new delVoidBool(NewLine), false); // false = outbound byte[] data = bytes.ToArray(); spTeensy.Write(data, 0, data.Length); }
private void ResponseAskStartTime() { var tm = this.TextManager; var cl = new FacebookBotClient(); cl.SendMessage(this.RecipientID, this.TextManager.Text(BotTextKey.AskStartTime)); var tp = new ButtonTemplateMessage(); tp.RecipientID = this.RecipientID; tp.Text = " "; var bt = new PostbackButton(); bt.Title = tm.Text(BotTextKey.DisplayDateTimeSample); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.ScheduleAdd; cm.MethodName = nameof(BotTextKey.DateTimeSample); cm.Value = ""; bt.SetPayload(cm); tp.Buttons.Add(bt); cl.SendMessage(tp); }
private void ResponseAskViewPermission() { var tm = this.TextManager; var l = new List <IButton>(); foreach (var item in Enum <ScheduleViewPermission> .GetValues()) { var bt = new PostbackButton(); bt.Title = tm.Text(item); var cm = new PayloadCommand(); cm.CommandName = BotCommandName.ScheduleAdd; cm.MethodName = nameof(State.AskViewPermission); cm.Value = item.ToStringFromEnum(); bt.SetPayload(cm); l.Add(bt); } var cl = new FacebookBotClient(); foreach (var item in ButtonTemplateMessage.Create(this.RecipientID , this.TextManager.Text(BotTextKey.PleaseSelectViewPermission), l)) { cl.SendMessage(item); } }