Example #1
0
        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);
        }