C#Bot Framework:基于之前的答案,为字段的表单流设置值

时间:2017-01-13 07:14:52

标签: bots botframework

我正在努力实现两个条件:

1)如果用户选择设备ID值为'其他设备',则应出现设备名称提示(用户必须输入设备名称的值)。

2)如果用户为设备ID选择了一些其他值,则该选定值应自动分配给DeviceName字段,用户无需为该问题输入值(问题2应跳过并移至最终问题)。 /> 的型号:

public class ITRequestQuery
{
    [Optional]
    [Template(TemplateUsage.NoPreference, "Other Device")]
    public string DeviceID { get;  set; }
    [Prompt("Enter Device Name")]
    public string DeviceName { get; set; }
    [Prompt("Please explain me more about your request! I will forward it to our IT Team.")]
    public string Description { get; set; }

}   

方式

return new FormBuilder<ITRequestQuery>()
            .Field(new FieldReflector<ITRequestQuery>(nameof(ITRequestQuery.DeviceID))
            .SetActive((state) =>
            {
                return assetID != null && assetID.Count > 0;
            })
            .SetType(null)
            .SetDefine((state, field) =>
            {
                foreach (var prod in AssetIds())
                    field
                        .AddDescription(prod, prod)
                        .AddTerms(prod, prod);
                return Task.FromResult(true);
            }))
            .Field(new FieldReflector<ITRequestQuery>(nameof(ITRequestQuery.DeviceName))
            .SetActive((state1)=> {
                if (state1.DeviceID == null)
                    return true;
                else
                    return false;
                }
            ))
            .Field(nameof(ITRequestQuery.Description))
            .AddRemainingFields()
            .Build();  

我被困在这里,

if (state1.DeviceID == null)
                    return true;

实际上,这个条件应该显示第二个问题,但它再次进入第一个问题。

0 个答案:

没有答案