public async Task <int> CreatePerson(CreatePersonCommandModel command, CrossContext ctx, CancellationToken token) { var events = await _processor .Command <CreatePersonDomainCommand>(command, ctx) .UseDomain(_mapper.Map <CreatePersonDomainCommand>(command)) .UseValidator(new CreatePersonCommandValidator()) .RunWithEvents(() => new CreatePersonCommandHandler(), token); return(events.MapSingleEvent <PersonCreatedDomainEvent, int>(x => x.PersonId)); }