public static TModel FromConfigurationItemKey <TModel>(ConfigurationItemKey configurationItemKey) where
        TModel : ConfigurationItemKeyApiModel, new()
        {
            var model = new TModel();

            model.Id       = configurationItemKey.Id;
            model.TenantId = configurationItemKey.TenantId;
            model.Name     = configurationItemKey.Name;
            return(model);
        }
            public async Task <Response> Handle(Request request)
            {
                var entity = await _context.ConfigurationItemKeys
                             .Include(x => x.Tenant)
                             .SingleOrDefaultAsync(x => x.Id == request.ConfigurationItemKey.Id && x.Tenant.UniqueId == request.TenantUniqueId);

                if (entity == null)
                {
                    var tenant = await _context.Tenants.SingleAsync(x => x.UniqueId == request.TenantUniqueId);

                    _context.ConfigurationItemKeys.Add(entity = new ConfigurationItemKey()
                    {
                        TenantId = tenant.Id
                    });
                }

                entity.Name = request.ConfigurationItemKey.Name;

                await _context.SaveChangesAsync();

                _bus.Publish(new AddedOrUpdatedConfigurationItemKeyMessage(entity, request.CorrelationId, request.TenantUniqueId));

                return(new Response());
            }
 public AddedOrUpdatedConfigurationItemKeyMessage(ConfigurationItemKey configurationItemKey, Guid correlationId, Guid tenantId)
 {
     Payload        = new { Entity = configurationItemKey, CorrelationId = correlationId };
     TenantUniqueId = tenantId;
 }
 public static ConfigurationItemKeyApiModel FromConfigurationItemKey(ConfigurationItemKey configurationItemKey)
 => FromConfigurationItemKey <ConfigurationItemKeyApiModel>(configurationItemKey);