Umbraco Contourを使用しているときに、フォームがいつアーカイブされるかを追跡できる機能を作成しようとしています。通常、Umbracoコードベースには、フックできる一連のイベントがあります。しかし、ここには表示されません。
もう1つのアイデアは、データベースにトリガーなどを配置することでしたが、このアプローチに対するコードのみのソリューションがあるかどうかを確認したいと考えていました。
Umbraco Contourを使用しているときに、フォームがいつアーカイブされるかを追跡できる機能を作成しようとしています。通常、Umbracoコードベースには、フックできる一連のイベントがあります。しかし、ここには表示されません。
もう1つのアイデアは、データベースにトリガーなどを配置することでしたが、このアプローチに対するコードのみのソリューションがあるかどうかを確認したいと考えていました。
私の知る限り、フォームがアーカイブされたときに発生する特定のイベントはありませんが、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)
{
...
}
}
}