public async Task <bool> Handle(CreatePetRequest message, IOutboundPort <NewEntityResponse <int> > outputPort) { var user = await _userStore.GetUserById(message.User); if (user == null) { return(false); } // Compose a new Pet instance: var pet = _entityFactory.GetPetBuilder() .SetName(message.Name) .SetSpecies(await _store.GetSpeciesById(message.SpeciesType)) .SetMorph(message.Morph) .SetOwner(user) .Build(); var id = await _store.Create(pet); var response = new NewEntityResponse <int> { Id = id }; outputPort.Handle(response); return(true); }