/// <summary>
        /// Handles the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public async Task <Asset> Handle(CreateAssetCommand message)
        {
            Schema schema = await this._schemaRepository.Get(message.SchemaId);

            Asset asset = schema.AddAsset(message.Name, message.Tag);

            await this._schemaRepository.Update(schema);

            this._eventBus.Publish(new AssetCreatedEvent(asset.Id, schema.Id, asset.Name, asset.Tag));

            return(asset);
        }