예제 #1
0
        public Task <Unit> Handle(UpdateSomeDataCommand request, CancellationToken cancellationToken)
        {
            try
            {
                using (var context = _dbContext)
                {
                    var aggregate = _someDataWriteRepository.Get(request.SomeDataId, context);
                    aggregate.ChangeFields(request);
                    _someDataWriteRepository.Save(aggregate, context);

                    context.SaveChanges();
                }

                _eventBus.Publish(new SomeDataUpdatedEvent(request.SomeDataId,
                                                           request.FirstName,
                                                           request.MiddleName,
                                                           request.LastName,
                                                           request.Title,
                                                           request.Color,
                                                           request.CreationDate,
                                                           request.FacebookUrl));

                return(Unit.Task);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }