using Books.Api.Domain.FiscalYears; using EventFlow.Commands; namespace Books.Api.Commands.FiscalYears; public class CreateFiscalYearCommandHandler : CommandHandler { public override Task ExecuteAsync( FiscalYearAggregate aggregate, CreateFiscalYearCommand command, CancellationToken cancellationToken) { aggregate.Create( command.CompanyId, command.Name, command.StartDate, command.EndDate, command.IsFirstFiscalYear, command.IsReorganization); return Task.CompletedTask; } } public class CloseFiscalYearCommandHandler : CommandHandler { public override Task ExecuteAsync( FiscalYearAggregate aggregate, CloseFiscalYearCommand command, CancellationToken cancellationToken) { aggregate.Close(command.ClosedBy); return Task.CompletedTask; } } public class ReopenFiscalYearCommandHandler : CommandHandler { public override Task ExecuteAsync( FiscalYearAggregate aggregate, ReopenFiscalYearCommand command, CancellationToken cancellationToken) { aggregate.Reopen(command.ReopenedBy); return Task.CompletedTask; } } public class LockFiscalYearCommandHandler : CommandHandler { public override Task ExecuteAsync( FiscalYearAggregate aggregate, LockFiscalYearCommand command, CancellationToken cancellationToken) { aggregate.Lock(command.LockedBy); return Task.CompletedTask; } } public class MarkOpeningBalancePostedCommandHandler : CommandHandler { public override Task ExecuteAsync( FiscalYearAggregate aggregate, MarkOpeningBalancePostedCommand command, CancellationToken cancellationToken) { aggregate.MarkOpeningBalancePosted(); return Task.CompletedTask; } }