using Events.WebAPI.Contract.Messages; using Events.FilesAPI.Features.Certificates.Synchronize; using MassTransit; using MediatR; namespace Events.FilesAPI.Features.Certificates; public class CertificateRegistrationEventsConsumer : IConsumer, IConsumer, IConsumer { private readonly IMediator mediator; public CertificateRegistrationEventsConsumer(IMediator mediator) { this.mediator = mediator; } public Task Consume(ConsumeContext context) { return mediator.Send(new SynchronizeCertificateCommand( context.Message.EventId, context.Message.PersonId), context.CancellationToken); } public async Task Consume(ConsumeContext context) { await mediator.Send(new SynchronizeCertificateCommand( context.Message.EventId, context.Message.PersonId), context.CancellationToken); if (context.Message.PreviousEventId != context.Message.EventId || context.Message.PreviousPersonId != context.Message.PersonId) { await mediator.Send(new SynchronizeCertificateCommand( context.Message.PreviousEventId, context.Message.PreviousPersonId), context.CancellationToken); } } public Task Consume(ConsumeContext context) { return mediator.Send(new SynchronizeCertificateCommand( context.Message.EventId, context.Message.PersonId), context.CancellationToken); } }