public async Task <Unit> Handle(PutStatementCommand request, CancellationToken cancellationToken) { if (!request.Statement.Id.HasValue) { request.Statement.Id = request.StatementId; } await _mediator.Send(CreateStatementCommand.Create(request.Statement), cancellationToken).ConfigureAwait(false); await _context.SaveChangesAsync(cancellationToken); return(await Unit.Task); }
public async Task <ICollection <Guid> > Handle(CreateStatementsCommand request, CancellationToken cancellationToken) { var tasks = new List <Task <Guid> >(); foreach (var statement in request.Statements) { tasks.Add(_mediator.Send(CreateStatementCommand.Create(statement, persist: false), cancellationToken)); } var ids = await Task.WhenAll(tasks).ConfigureAwait(false); await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false); await _mediator.Publish(StatementsSaved.Create(ids)); return(ids); }
public async Task <ICollection <Guid> > Handle(CreateStatementsCommand request, CancellationToken cancellationToken) { using (var transaction = _context.Database.BeginTransaction()) { var ids = new List <Guid>(); foreach (var statement in request.Statements) { var id = await _mediator.Send(CreateStatementCommand.Create(statement), cancellationToken).ConfigureAwait(false); ids.Add(id); } await _context.SaveChangesAsync(cancellationToken); await transaction.CommitAsync(cancellationToken); return(ids); } }