私はhttps://aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Eventsを読んでも、私は私の問題の解決策を見つけようと仕事で8時間を費やしているhttps://github.com/aspnetboilerplate/aspnetboilerplate/tree/f10fa5205c780bcc27adfe38aaae631f412eb7df/src/Abp/Events/Bus/Entities汎用のIEventHandlerはどのようにしてビルドできますか?
エンティティイベントハンドラのABPの実装が、私は成功しませんでした。
私は、次のような異なる状態を生成する特定のアクション、記録DatumStatusと呼ばれる単一のエンティティを指し、特定のエンティティ持っている:私はジェネリックを生成しようとしている等の承認を受け、修正、見直し、アーカイブを、
をこれらのアクションに基づいてステータスを変更できるEventHandler。
アルゴリズムに基づい例:
EventBus.Trigger(new ApproveEventData{
Repository = _certainRepository,
Ids = [1, 4, 5]
});
ハンドラ自体は、今度は、この状態遷移
public void HandleEvent(ApproveEventData eventData)
{
eventData.Repository.Where(p => p.Id.IsIn(eventData.Ids)).ForEach(p => {
p.Approved = true;
p.ApprovalDate = DateTime.Now()
});
}
を扱うという問題は、私は、一般的なApproveEventData
とハンドラを記述する必要があり、単一のエンティティごとに同じHandleEventを発生させることができます。私が得た
"最も近い" です:
EventBus.Trigger(typeof(ApproveEventData<int>), (IEventData) new ApproveEventData<int> {
Repository = (IRepository<EntityWithStatus<int>, int>) _entityRepository,
Ids = selectedIds
});
[Serializable]
public class ApproveEventData<TPrimaryKey> : EventData
{
public IRepository<EntityWithStatus<TPrimaryKey>, TPrimaryKey> Repository;
public TPrimaryKey[] Ids;
}
failes上記の実装リポジトリをキャストするとき。
誰かに光を当てることはできますか?ありがとう!
ホリー****をお勧めします。 #1は働いた。 私はあなたを愛しています –
うれしいです。それがすべての場合は合格として市場に入れてください – Jeff
私は4分以内に受け入れることができます。心配しないで、私はそれをやります。 –