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); }
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 }); } }