49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using Events.WebAPI.Contract.Messages;
|
|
using Events.FilesAPI.Features.Certificates.Synchronize;
|
|
using MassTransit;
|
|
using MediatR;
|
|
|
|
namespace Events.FilesAPI.Features.Certificates;
|
|
|
|
public class CertificateRegistrationEventsConsumer :
|
|
IConsumer<RegistrationCreated>,
|
|
IConsumer<RegistrationUpdated>,
|
|
IConsumer<RegistrationDeleted>
|
|
{
|
|
private readonly IMediator mediator;
|
|
|
|
public CertificateRegistrationEventsConsumer(IMediator mediator)
|
|
{
|
|
this.mediator = mediator;
|
|
}
|
|
|
|
public Task Consume(ConsumeContext<RegistrationCreated> context)
|
|
{
|
|
return mediator.Send(new SynchronizeCertificateCommand(
|
|
context.Message.EventId,
|
|
context.Message.PersonId), context.CancellationToken);
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<RegistrationUpdated> 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<RegistrationDeleted> context)
|
|
{
|
|
return mediator.Send(new SynchronizeCertificateCommand(
|
|
context.Message.EventId,
|
|
context.Message.PersonId), context.CancellationToken);
|
|
}
|
|
}
|