我讀過https://aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Events也ABP的實現實體的事件處理程序https://github.com/aspnetboilerplate/aspnetboilerplate/tree/f10fa5205c780bcc27adfe38aaae631f412eb7df/src/Abp/Events/Bus/Entities如何構建泛型IEventHandler?
我已經花了8小時的工作試圖找到一個解決我的問題,但我沒能成功。
我有一個指向名爲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分鐘內接受。別擔心,我會做的。 –