public override Task OnTurn(ITurnContext turnContext) { if (turnContext.Activity.Type == ActivityTypes.Message) { // Check to see if there is an active topic. if (HasActiveTopic) { // Let the active topic handle this turn by passing context to it's OnReceiveActivity(). return(ActiveTopic .OnTurn(turnContext)); } // If you don't have the state you need, prompt for it if (State.Name == null) { return(SetActiveTopic("namePrompt") .OnTurn(turnContext)); } if (State.Age == null) { return(SetActiveTopic("agePrompt") .OnTurn(turnContext)); } // Now that you have the state you need (age and name), use it! return(turnContext.SendActivity($"Hello { State.Name }! You are { State.Age } years old.")); } return(Task.CompletedTask); }
public override Task OnTurn(ITurnContext context) { if ((context.Activity.Type == ActivityTypes.Message) && (context.Activity.AsMessageActivity().Text.Length > 0)) { var message = context.Activity.AsMessageActivity(); //I can use LUIS here! // If the user wants to change the topic of conversation... if (message.Text.ToLowerInvariant() == "add reservation") { // Set the active topic and let the active topic handle this turn. this.SetActiveTopic(ADD_RESERVATION_TOPIC) .OnTurn(context); return(Task.CompletedTask); } //TODO: implement "delete alarm topic" //if (message.Text.ToLowerInvariant() == "delete alarm") //{ // this.SetActiveTopic(DELETE_ALARM_TOPIC) // .OnReceiveActivity(context); // return Task.CompletedTask; //} if (message.Text.ToLowerInvariant() == "show reservation") { this.ClearActiveTopic(); ReservationView.ShowReservations(context, context.GetUserState <BotUserState>().Reservations); return(Task.CompletedTask); } if (message.Text.ToLowerInvariant() == "help") { this.ClearActiveTopic(); this.ShowHelp(context); return(Task.CompletedTask); } // If there is an active topic, let it handle this turn until it completes. if (HasActiveTopic) { ActiveTopic.OnTurn(context); return(Task.CompletedTask); } ShowDefaultMessage(context); } return(Task.CompletedTask); }
public override Task OnTurn(ITurnContext turnContext) { if (HasActiveTopic) { return(ActiveTopic.OnTurn(turnContext)); } // If there are no alarms to delete... if (State.Alarms.Count == 0) { return(turnContext.SendActivity("There are no alarms to delete.")); } if (State.AlarmIndex == null) { // If there is only one alarm to delete, use that index. No need to prompt. if (State.Alarms.Count == 1) { AlarmsView.ShowAlarms(turnContext, State.Alarms); State.AlarmIndex = 0; } else { return(SetActiveTopic(WHICH_ALARM_PROMPT) .OnTurn(turnContext)); } } State.Alarm.Title = State.Alarms[(int)State.AlarmIndex].Title; if (State.DeleteConfirmed == null) { return(SetActiveTopic(CONFIRM_DELETE_PROMPT) .OnTurn(turnContext)); } OnSuccess(turnContext, new DeleteAlarmTopicValue { Alarm = this.State.Alarm, AlarmIndex = (int)State.AlarmIndex, DeleteConfirmed = (bool)State.DeleteConfirmed }); return(Task.CompletedTask); }
public override Task OnTurn(ITurnContext context) { if (HasActiveTopic) { ActiveTopic.OnTurn(context); return(Task.CompletedTask); } if (State.confirmation.confirmationState == null) { this.SetActiveTopic(CONFIRMATION_PROMPT); this.ActiveTopic.OnTurn(context); return(Task.CompletedTask); } this.OnSuccess(context, this.State.confirmation); return(Task.CompletedTask); }
public override Task OnTurn(ITurnContext turnContext) { if (HasActiveTopic) { return(ActiveTopic.OnTurn(turnContext)); } if (State.Alarm.Title == null) { return(SetActiveTopic(TITLE_PROMPT) .OnTurn(turnContext)); } if (State.Alarm.Time == null) { return(SetActiveTopic(TIME_PROMPT) .OnTurn(turnContext)); } OnSuccess(turnContext, State.Alarm); return(Task.CompletedTask); }