使用C#将Microsoft Bot State数据存储到SQL Server数据库

时间:2018-07-28 08:05:51

标签: c# botframework

如何将漫游器状态数据存储到SQL Server数据库?我有执行表单流程操作并收集用户输入的代码。这些数据我需要将其保存到数据库中,并向用户显示一个请求ID,以供将来参考。当我刚接触这些东西时,就被这个阶段打动了。

下面是我正在处理的代码。

// Hardware
public enum HardwareOptions
{
    Mouse, Printer, Keyboard, Monitor
};

[Serializable]
public class HardwareQuery
{
    [Prompt("Choose your {&} ? {||}")]
    public HardwareOptions? Hardware;

    [Prompt("Please enter {&}")]
    public string Details { get; set; }

    [Prompt("Please enter {&}")]
    public int Quantity { get; set; }

    [Prompt("Please provide your business need / {&} below")]
    public string Justification { get; set; }

    public static IForm<HardwareQuery> BuildForm()
    {
        return new FormBuilder<HardwareQuery>()
                .Message("Welcome to the PHI Create Hardware Request!")
                .Build();
    }
}

2 个答案:

答案 0 :(得分:0)

  

如何将漫游器状态数据存储到SQL Server数据库?

Azure扩展使我们可以store bot's state data in Azure SQL,您可以在bot应用程序中安装和使用它。此外,如果您想使用自己的SQL Server数据库来实现/自定义BotDataStore,则可以在GitHub上检查the sourc code of Azure Extensions来了解如何实现IBotDataStore接口以使用SQL数据库。 / p>

  

这些数据我需要将其保存到数据库中,并向用户显示请求ID以供将来参考。

如果您只想保存从HardwareQuery表单中收集的用户索引,则可以获取用户输入并按完成方法保存到数据库中。

public static IForm<HardwareQuery> BuildForm()
{
    return new FormBuilder<HardwareQuery>()
            .Message("Welcome to the PHI Create Hardware Request!")
                .OnCompletion(async (context, HardwareQueryForm) =>
                {
                    //you code logic 

                    string hardware = HardwareQueryForm.Hardware.ToString();
                    string details = HardwareQueryForm.Details;
                    int quantity = HardwareQueryForm.Quantity;
                    string justification = HardwareQueryForm.Justification;

                    //connect to database and save user inputs into database
                })
                .Build();
}

答案 1 :(得分:0)

对于Bot Framework SDKv4:

As written here,您需要实现IStorage接口。

您可以以我制作的here为例作为蓝图。