MgDtoDbTableBase declares its IConsumer interfaces so the DTO event bridge runs
The three HandleEventAsync methods were dead code: nop registers and resolves consumers by interface only, so EntityUpdatedEvent<TDtoEntity> reached no one and never became the main entity event - silently, because zero consumers is not an error. The declaration needs Nop.Services, where IConsumer<T> lives, hence the new project reference.
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\FruitBank\Libraries\Nop.Core\Nop.Core.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\FruitBank\Libraries\Nop.Data\Nop.Data.csproj" />
|
||||
<!-- IConsumer<T> a Nop.Services.Events-ben lakik; enélkül a DTO->fő-entitás esemény-híd nem deklarálható. -->
|
||||
<ProjectReference Include="..\..\..\..\FruitBank\Libraries\Nop.Services\Nop.Services.csproj" />
|
||||
<ProjectReference Include="..\Mango.Nop.Core\Mango.Nop.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -7,10 +7,19 @@ using Nop.Core.Configuration;
|
||||
using Nop.Core.Domain.Orders;
|
||||
using Nop.Core.Events;
|
||||
using Nop.Data;
|
||||
using Nop.Services.Events;
|
||||
|
||||
namespace Mango.Nop.Data.Repositories;
|
||||
|
||||
public abstract class MgDtoDbTableBase<TDtoEntity, TMainEntity> : MgDbTableBase<TDtoEntity> where TDtoEntity : BaseEntity/*, IMgModelDtoBase<TDtoEntity>*/ where TMainEntity : BaseEntity
|
||||
// A három IConsumer<> deklaráció NEM elhagyható: a nop kizárólag interfész alapján regisztrál
|
||||
// (NopStartup: FindClassesOfType(typeof(IConsumer<>))) és old fel (EventPublisher: ResolveAll<IConsumer<TEvent>>).
|
||||
// Nélkülük az alábbi HandleEventAsync metódusok halott kódok — a DTO-esemény sosem lesz fő-entitás eseménnyé,
|
||||
// és ez némán történik, mert a nulla fogyasztó nem hiba.
|
||||
public abstract class MgDtoDbTableBase<TDtoEntity, TMainEntity> : MgDbTableBase<TDtoEntity>,
|
||||
IConsumer<EntityInsertedEvent<TDtoEntity>>,
|
||||
IConsumer<EntityUpdatedEvent<TDtoEntity>>,
|
||||
IConsumer<EntityDeletedEvent<TDtoEntity>>
|
||||
where TDtoEntity : BaseEntity/*, IMgModelDtoBase<TDtoEntity>*/ where TMainEntity : BaseEntity
|
||||
{
|
||||
public Type MainEntityType { get; } = typeof(Order);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user