44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using Events.WebAPI.Contract.Messages;
|
|
using Events.FilesAPI.Features.RegistrationsExcel.Synchronize;
|
|
using MassTransit;
|
|
using MediatR;
|
|
|
|
namespace Events.FilesAPI.Features.RegistrationsExcel;
|
|
|
|
public class RegistrationsExcelEventsConsumer :
|
|
IConsumer<RegistrationCreated>,
|
|
IConsumer<RegistrationUpdated>,
|
|
IConsumer<RegistrationDeleted>
|
|
{
|
|
private readonly IMediator mediator;
|
|
|
|
public RegistrationsExcelEventsConsumer(IMediator mediator)
|
|
{
|
|
this.mediator = mediator;
|
|
}
|
|
|
|
public Task Consume(ConsumeContext<RegistrationCreated> context)
|
|
{
|
|
return mediator.Send(new SynchronizeRegistrationsExcelCommand(
|
|
context.Message.EventId), context.CancellationToken);
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<RegistrationUpdated> context)
|
|
{
|
|
await mediator.Send(new SynchronizeRegistrationsExcelCommand(
|
|
context.Message.EventId), context.CancellationToken);
|
|
|
|
if (context.Message.PreviousEventId != context.Message.EventId)
|
|
{
|
|
await mediator.Send(new SynchronizeRegistrationsExcelCommand(
|
|
context.Message.PreviousEventId), context.CancellationToken);
|
|
}
|
|
}
|
|
|
|
public Task Consume(ConsumeContext<RegistrationDeleted> context)
|
|
{
|
|
return mediator.Send(new SynchronizeRegistrationsExcelCommand(
|
|
context.Message.EventId), context.CancellationToken);
|
|
}
|
|
}
|