using Events.WebAPI.Contract.Messages; using Events.FilesAPI.Features.RegistrationsExcel.Synchronize; using MassTransit; using MediatR; namespace Events.FilesAPI.Features.RegistrationsExcel; public class RegistrationsExcelEventsConsumer : IConsumer, IConsumer, IConsumer { private readonly IMediator mediator; public RegistrationsExcelEventsConsumer(IMediator mediator) { this.mediator = mediator; } public Task Consume(ConsumeContext context) { return mediator.Send(new SynchronizeRegistrationsExcelCommand( context.Message.EventId), context.CancellationToken); } public async Task Consume(ConsumeContext 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 context) { return mediator.Send(new SynchronizeRegistrationsExcelCommand( context.Message.EventId), context.CancellationToken); } }