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) }); }