private async Task <DialogTurnResult> ObligationVmsStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var details = (ChatbotDetails)stepContext.Values["details"]; var handler = new AzureHandler(details.User.Tenant, details.User.TokenResponse.Token); var choice = (FoundChoice)stepContext.Result; if (choice.Value == "Alle VMs") { return(await stepContext.NextAsync(details, cancellationToken)); } else { details.OnlyObligationVms = true; stepContext.Values["details"] = details; var landscapeObligationToStartList = handler.GetObligationVmsForLandscapeTagAsList(details.LandscapeTag); if (landscapeObligationToStartList.Count > 0) { var message = "Folgende VMs sind von dir als notwendig hinterlegt worden:"; foreach (var vm in landscapeObligationToStartList) { message = message + Environment.NewLine + vm; } message = message + Environment.NewLine + "Soll diese Auswahl erweitert oder eingegrenzt werden?"; var promptMessage = MessageFactory.Text(message, message, InputHints.ExpectingInput); return(await stepContext.PromptAsync(nameof(ConfirmPrompt), new PromptOptions() { Prompt = promptMessage }, cancellationToken)); } else { return(await stepContext.BeginDialogAsync(nameof(SetObligationVmsForLandscapeDialog), details, cancellationToken)); } } }
private async Task <DialogTurnResult> CheckForObligationVmsStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var details = (ChatbotDetails)stepContext.Values["details"]; var handler = new AzureHandler(details.User.Tenant, details.User.TokenResponse.Token); var choice = (FoundChoice)stepContext.Result; if (choice.Value == "Alle VMs") { return(await stepContext.NextAsync(details, cancellationToken)); } else { details.OnlyObligationVms = true; stepContext.Values["details"] = details; var landscapeObligationToStartList = handler.GetObligationVmsForLandscapeTagAsList(details.LandscapeTag); if (landscapeObligationToStartList.Count > 0) { var message = "Folgende VMs sind als notwendig hinterlegt worden:"; foreach (var vm in landscapeObligationToStartList) { message = message + Environment.NewLine + vm; } message = message + Environment.NewLine + "Falls diese Auswahl nicht stimmen sollte, muss dies umkonfiguriert werden"; var promptMessage = MessageFactory.Text(message, message, InputHints.ExpectingInput); return(await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions() { Prompt = promptMessage }, cancellationToken)); } else { var message = "Für diese Landschaft existiert keine Konfiguration für notwenige VMs. Solange die Konfiguration nicht existiert, werden alle VMs der Landschaft gestartet."; await stepContext.Context.SendActivityAsync(MessageFactory.Text(message, message, InputHints.IgnoringInput), cancellationToken); return(await stepContext.NextAsync(details, cancellationToken)); } } }