WaelRazouk的活动

Hi,

Did you configure the AutoEventSelectors

Configure<AbpDistributedEntityEventOptions>(options => 
{ 
    options.AutoEventSelectors.Add<OrganizationUnit>(); 
    options.EtoMappings.Add<OrganizationUnit, OrganizationUnitEto>(); 
}); 

Hi, yes in my DomainModule, here is the ConfigureServices method

public override void ConfigureServices(ServiceConfigurationContext context)
{
    base.ConfigureServices(context);
    Configure<AbpDistributedEntityEventOptions>(options =>
    {
        options.AutoEventSelectors.Add<OrganizationUnit>();
        options.EtoMappings.Add<OrganizationUnit, OrganizationUnitEto>();
    });
}
  • ABP Framework version: v8.1.1
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I have the micro-service architecture.

Follow the steps described in https://docs.abp.io/en/abp/latest/Distributed-Event-Bus#entity-synchronizer and try to synchronize OrganizationUnit (so I can have a replica of the table in my custom service)

Here is the synchronizer class


public class CssDepartmentSynchronizer :
    EntitySynchronizer<CssDepartment, OrganizationUnitEto>
{

    private readonly ILogger<CssDepartmentSynchronizer> _logger;

    public CssDepartmentSynchronizer(
        IObjectMapper objectMapper, 
        IRepository<CssDepartment> repository,
        ILogger<CssDepartmentSynchronizer> logger) : base(objectMapper, repository)
    {
        _logger = logger;
    }

    public override Task HandleEventAsync(EntityCreatedEto<OrganizationUnitEto> eventData)
    {
        _logger.LogInformation("CssDepartmentSynchronizer EntityCreatedEto");
        return base.HandleEventAsync(eventData);
    }

    public override Task HandleEventAsync(EntityDeletedEto<OrganizationUnitEto> eventData)
    {
        _logger.LogInformation("CssDepartmentSynchronizer EntityDeletedEto");
        return base.HandleEventAsync(eventData);
    }

    public override Task HandleEventAsync(EntityUpdatedEto<OrganizationUnitEto> eventData)
    {
        _logger.LogInformation("CssDepartmentSynchronizer EntityUpdatedEto");
        return base.HandleEventAsync(eventData);
    }

    protected override async Task<CssDepartment?> FindLocalEntityAsync(OrganizationUnitEto eto)
    {
        _logger.LogInformation("CssDepartmentSynchronizer FindLocalEntityAsync");
        var entity = await Repository.FindAsync(d => d.Id  == eto.Id);
        if (entity == null)
            _logger.LogInformation("CssDepartmentSynchronizer not found");
        else
            _logger.LogInformation("CssDepartmentSynchronizer found");
        return entity;
    }
}

This class is not being hit (no logs added to the logs file). Similar code for IdentityUser works fine

public class CssUserSynchronizer :
 EntitySynchronizer<CssUser, UserEto>

hi

One way is a good approach. You can use GUID? UserId in your module.

You mean just define a property UserId in my module without any relation? or define an entity replica to IdentityUser entity and connect my Service entity to it?

  • ABP Framework version: v8.1.1
  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I'm building an app using the micro-service template. I have an entity called Service in my microservice project, this entity has some navigation properties related to Identity entities (Owner which should relate to IdentityUser entity, and Department which should relate to OrganizationUnit entity).

What is the best way to define this relation?

I searched some topics and read the docs:

  • one way is to define an entity in my project which reflects the desired entity (just like CMS kit defines CMSUser which synchronizes with IdentityUser). but IdentityUser has some useful code to do this like UserLookupService (defined in Volo.Abp.Users). OrganizationUnit doesn't.
  • Another way is to include the desired module (i.e: Identity module) and in ABP suite define the navigation using pre-built modules from ABP (but this way increases the coupling between the services I think)
显示 4 个条目中的 1 到 4 个.
Made with ❤️ on ABP v8.2.0-preview Updated on 三月 25, 2024, 15:11