public async Task <Client> Add(Client model)
        {
            Grain grain = null;

            if (model.TopLevelSecurableItem != null)
            {
                grain = await _grainStore.Get(model.TopLevelSecurableItem.Grain);
            }

            var clientEntity = model.ToEntity();

            clientEntity.TopLevelSecurableItem.GrainId = grain?.Id;

            _authorizationDbContext.Clients.Add(clientEntity);
            await _authorizationDbContext.SaveChangesAsync();

            return(model);
        }
        public async Task <Client> Add(Client client)
        {
            Grain grain = null;

            if (client.TopLevelSecurableItem != null)
            {
                grain = await _grainStore.Get(client.TopLevelSecurableItem.Grain);
            }

            var clientEntity = client.ToEntity();

            clientEntity.TopLevelSecurableItem.GrainId = grain?.Id;

            AuthorizationDbContext.Clients.Add(clientEntity);
            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <Client>(EventTypes.EntityCreatedEvent, client.Id, clientEntity.ToModel()));

            return(client);
        }
 public async Task <Grain> GetGrain(string name)
 {
     return(await _grainStore.Get(name));
 }