根据选择跳过问题

我想知道是否有可能根据用户的选择跳过所有问题并终止对话。根据选择跳过问题

例子,我有下面的代码:

public ContentClassification ContentClassification {get;set;} 

public StatusOfContent StatusContent {get; set;}

public Accessibility ExternalSharing {get; set;}

根据 “ContentClassification” 的选择,跳过其他问题。

在此先感谢。

回答:

根据“ContentClassification”的选择,跳过其他问题。

您可以使用FieldReflector实现自己IField,例如:

public enum ContentClassification 

{

Confidential_Restricted = 1,

Confidential_Secret = 2,

Public = 3,

Strictly_Confidential = 4,

help = 5

};

public enum StatusContent

{

Status1,

Status2

}

public enum Accessibility

{

Accessibility1,

Accessibility2

}

[Serializable]

public class Classification

{

public ContentClassification? Choice { get; set; }

public StatusContent? StatusOfContent { get; set; }

public Accessibility? Accessibility { get; set; }

public static bool Confirmation = true;

public static IForm<Classification> BuildForm()

{

return new FormBuilder<Classification>()

.Message("You want to")

.Field(new FieldReflector<Classification>(nameof(Choice))

.SetNext((value, state) =>

{

var selection = (ContentClassification)value;

if (selection == ContentClassification.help)

{

Confirmation = false;

state.Accessibility = null;

state.StatusOfContent = null;

}

else

{

Confirmation = true;

}

return new NextStep();

}))

.Field(new FieldReflector<Classification>(nameof(StatusOfContent))

.SetActive(state => Confirmation))

.Field(new FieldReflector<Classification>(nameof(Accessibility))

.SetActive(state => Confirmation))

.Build();

}

}

而在RootDialog

[Serializable] 

public class RootDialog : IDialog<object>

{

public Task StartAsync(IDialogContext context)

{

var form = new FormDialog<Classification>(new Classification(), Classification.BuildForm, FormOptions.PromptInStart, null);

context.Call(form, this.GetResultAsync);

return Task.CompletedTask;

}

private async Task GetResultAsync(IDialogContext context, IAwaitable<Classification> result)

{

var state = await result;

//TODO:

}

}

使用此代码,当用户在第一个对话框中选择HelpChoice,它会跳过以下两个问题,您将得到resultGetResultAsyncChoice = HelpStatusOfContent = null,Accessibility = null等。

以上是 根据选择跳过问题 的全部内容, 来源链接: utcz.com/qa/257107.html

回到顶部