コード例 #1
0
        public async Task Handle(CreateFilmCommand command)
        {
            var validationResult = await _validator.ValidateAsync(command);

            if (!validationResult.IsValid)
            {
                await _eventService.RaiseEvent(new ValidationFailedEvent(validationResult));

                return;
            }

            var record = await _unitOfWork.Execute(async() =>
            {
                return(await _filmWriter.Create(command.UserId, command.Title, command.RuntimeInMinutes));
            });

            await _eventService.RaiseEvent(new FilmCreatedEvent
            {
                FilmId = record.Id,
                Film   = Film.FromRecord(record)
            });
        }