コード例 #1
0
        public Task AddWorkItem(IBotContext context)
        {
            //switch
            var message = context.Request.AsMessageActivity();

            if (context.State.ConversationProperties["currentState"] == null)
            {
                context.Reply("Enter customerid:");
                context.State.ConversationProperties["currentState"] = "customerId";

                return(Task.CompletedTask);
            }

            switch (context.State.ConversationProperties["currentState"])
            {
            case "customerId":
                context.State.ConversationProperties["customerId"] = message.Text;
                context.Reply("Enter description:");
                context.State.ConversationProperties["currentState"] = "description";
                break;

            case "description":
                context.State.ConversationProperties["description"] = message.Text;
                context.Reply("Enter work hours:");

                context.State.ConversationProperties["currentState"] = "hours";
                break;

            case "hours":
                context.State.ConversationProperties["hours"] = message.Text;

                // Recognize number
                NumberModel numberModel = (NumberModel)NumberRecognizer.Instance.GetNumberModel(Culture.English);
                var         result      = numberModel.Parse(context.Request.AsMessageActivity().Text);

                if (result.Count > 0 && long.TryParse(result[0].Resolution.Values.FirstOrDefault().ToString(), out long n))
                {
                    context.Reply($"You entered: {n}");
                    context.Reply("Enter attachment:");
                    context.State.ConversationProperties["currentState"] = "attachment";
                }
                else
                {
                    context.Reply("Invalid number. Enter an integer.");
                }
                break;

            default:
                // Once you completed your steps
                context.State.ConversationProperties["currentIntent"] = null;
                break;
            }

            return(Task.CompletedTask);
        }
コード例 #2
0
        public override ValidatorResult <int> Validate(IBotContext context)
        {
            // Recognize number
            NumberModel numberModel = (NumberModel)NumberRecognizer.Instance.GetNumberModel(Culture.English);
            var         result      = numberModel.Parse(context.Request.AsMessageActivity().Text);

            if (result.Count > 0 && int.TryParse(result[0].Resolution.Values.FirstOrDefault().ToString(), out int n))
            {
                return(new ValidatorResult <int>
                {
                    Value = n
                });
            }
            else
            {
                return(new ValidatorResult <int>
                {
                    Reason = Constants.INT_ERROR
                });
            }
        }