Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }