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);
            }
        }
Exemple #2
0
    /// <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);
            }
        }
Exemple #5
0
    /// <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();
        }
    }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
            }
        }