2017-08-11 39 views
1

您好,我已經爲這個表格做了檢查。Botbuilder,botframework

[Serializable] 
public enum PassportFormType 
{ 
    someEnum1, 
    someEnum2, 
    someEnum3, 
} 

[Serializable] 
public class PassportForm 
{ 
    [Prompt("Question text {||}")] 
    public PassportFormType? Situace { get; set; } 

    [Prompt("Question text {||}")] 
    public int Count{ get; set; } 
} 

我想爲我的機器人中的每個枚舉類型使用自定義驗證。 我知道我可以使用這樣的事情

.Field(nameof(Toppings), 
     validate: async (state, value) => 
     { 
      . 
      . 
      . 
      return result; 
     }) 

但它不適合我的解決方案,因爲我需要爲每個表格一次又一次地使用它。

如何爲每個枚舉類型應用自定義驗證?

回答

1

你也可以提供一個方法,而不是一個拉姆達:

async Task<ValidateResult> ValidateEnum(PassportForm state, object value) 
{ 
    var result = new ValidateResult(); 
    result.IsValid = true; 
    result.Value = value; 

    //logic ... 

    return result; 
} 

,並使用它像這樣:

.Field(nameof(PassportForm.Situace), validate: ValidateEnum) 
0

你的答案是正確的。但我的問題是不正確的。

我不能使用驗證,因爲我想解析輸入文本的值。但是申請每個enaly globaly。