C# 当使用Umbraco contour存档表单时,是否有任何方法可以连接到事件?使用Umbraco 4.7.2和Umbraco Contour 1.12?

C# 当使用Umbraco contour存档表单时,是否有任何方法可以连接到事件?使用Umbraco 4.7.2和Umbraco Contour 1.12?,c#,umbraco,umbraco-contour,C#,Umbraco,Umbraco Contour,我正在尝试创建一个功能,在使用Umbraco Contour时可以跟踪表单的存档时间。通常,Umbraco代码库中有一系列事件,我可以将其挂接。但是我在这里没有看到 另一个想法是在数据库上有一个触发器或其他东西,但想看看这种方法是否有一个只使用代码的解决方案。据我所知,表单存档时没有引发任何特定事件,但是,您可以尝试订阅FormStorage.FormUpdated事件,然后检查表单是否已存档,然后执行代码: using System; using umbraco.BusinessLogic;

我正在尝试创建一个功能,在使用Umbraco Contour时可以跟踪表单的存档时间。通常,Umbraco代码库中有一系列事件,我可以将其挂接。但是我在这里没有看到


另一个想法是在数据库上有一个触发器或其他东西,但想看看这种方法是否有一个只使用代码的解决方案。

据我所知,表单存档时没有引发任何特定事件,但是,您可以尝试订阅
FormStorage.FormUpdated
事件,然后检查表单是否已存档,然后执行代码:

using System;
using umbraco.BusinessLogic;
using Umbraco.Forms.Core;
using Umbraco.Forms.Data.Storage;

public class FormArchiveListener : ApplicationBase
{
    public FormArchiveListener()
    {
        FormStorage.FormUpdated += new EventHandler<FormEventArgs>(FormStorage_FormUpdated);
    }

    void FormStorage_FormUpdated(object sender, FormEventArgs e)
    {
        FormStorage storage = (FormStorage) sender;

        if (e.Form.Archived)
        {
            ...
        }
    }
}
使用系统;
使用umbraco.BusinessLogic;
使用Umbraco.Forms.Core;
使用Umbraco.Forms.Data.Storage;
公共类FormArchiveListener:ApplicationBase
{
公共形式存档者()
{
FormStorage.FormUpdated+=新的事件处理程序(FormStorage\u FormUpdated);
}
void FormStorage\u FormUpdated(对象发送方,FormEventArgs e)
{
FormStorage存储=(FormStorage)发送方;
如果(如表格存档)
{
...
}
}
}

据我所知,表单存档时不会引发任何特定事件,但您可以尝试订阅
FormStorage.FormUpdate
事件,然后从中检查表单是否存档,然后执行代码:

using System;
using umbraco.BusinessLogic;
using Umbraco.Forms.Core;
using Umbraco.Forms.Data.Storage;

public class FormArchiveListener : ApplicationBase
{
    public FormArchiveListener()
    {
        FormStorage.FormUpdated += new EventHandler<FormEventArgs>(FormStorage_FormUpdated);
    }

    void FormStorage_FormUpdated(object sender, FormEventArgs e)
    {
        FormStorage storage = (FormStorage) sender;

        if (e.Form.Archived)
        {
            ...
        }
    }
}
使用系统;
使用umbraco.BusinessLogic;
使用Umbraco.Forms.Core;
使用Umbraco.Forms.Data.Storage;
公共类FormArchiveListener:ApplicationBase
{
公共形式存档者()
{
FormStorage.FormUpdated+=新的事件处理程序(FormStorage\u FormUpdated);
}
void FormStorage\u FormUpdated(对象发送方,FormEventArgs e)
{
FormStorage存储=(FormStorage)发送方;
如果(如表格存档)
{
...
}
}
}

在那里,我现在有机会测试一下。发送方不是
表单
,它实际上是
表单存储
对象。您可以使用
FormEventArgs
访问当前表单。我已经更新了我的答案。在那里,我现在有机会测试一下。发送方不是
表单
,它实际上是
表单存储
对象。您可以使用
FormEventArgs
访问当前表单。我已经更新了我的答案。