/// <summary> /// Constructor /// </summary> /// <param name="entityCacheItems">List of CkEntities for RT generation</param> /// <param name="graphTypesCache">The cache</param> /// <param name="ckCache"></param> public OspMutation(IEnumerable <EntityCacheItem> entityCacheItems, IGraphTypesCache graphTypesCache, ICkCache ckCache) { _ckCache = ckCache; foreach (var cacheItem in entityCacheItems) { var inputType = graphTypesCache.GetOrCreateInput(cacheItem.CkId); var outputType = graphTypesCache.GetOrCreate(cacheItem.CkId); var createArgument = new QueryArgument(new NonNullGraphType(new ListGraphType(inputType))) { Name = Statics.EntitiesArg }; var updateArgument = new QueryArgument(new NonNullGraphType(new ListGraphType(new UpdateMutationDtoType <RtEntityDto>(inputType)))) { Name = Statics.EntitiesArg }; var deleteArgument = new QueryArgument(new NonNullGraphType(new ListGraphType(new DeleteMutationDtoType(inputType)))) { Name = Statics.EntitiesArg }; this.FieldAsync($"create{outputType.Name}s", $"Creates new entities of type '{outputType.Name}'.", new ListGraphType(outputType), new QueryArguments(createArgument), resolve: ResolveCreate) .AddMetadata(Statics.CkId, cacheItem.CkId); this.FieldAsync($"update{outputType.Name}s", $"Updates existing entity of type '{outputType.Name}'.", new ListGraphType(outputType), new QueryArguments(updateArgument), resolve: ResolveUpdate) .AddMetadata(Statics.CkId, cacheItem.CkId); this.FieldAsync($"delete{outputType.Name}s", $"Deletes an entity of type '{outputType.Name}'.", new BooleanGraphType(), new QueryArguments(deleteArgument), resolve: ResolveDelete) .AddMetadata(Statics.CkId, cacheItem.CkId); } }
private async Task <ITenantContextInternal> CreateTenantContextAsync(IOspSession systemSession, ICkCache ckCache) { var databaseContext = await CreateDatabaseContextByTenantAsync(systemSession, ckCache.TenantId); var tenantRepository = new TenantRepository(ckCache, databaseContext); return(new TenantContext(ckCache.TenantId, tenantRepository, ckCache)); }
public bool TryGetCkCache(string tenantId, out ICkCache ckCache) { var key = tenantId.MakeKey(); if (_ckCaches.TryGetValue(key, out ckCache)) { if (ckCache != null && !ckCache.IsDisposed) { return(true); } } return(false); }
public CkGraphRuleEngine(ICkCache ckCache, ITenantRepositoryInternal tenantRepository) { _ckCache = ckCache; _tenantRepository = tenantRepository; }
public TenantRepository(ICkCache ckCache, IDatabaseContext databaseContext) { CkCache = ckCache; _databaseContext = databaseContext; }
public TenantContext(string dataSource, ITenantRepositoryInternal tenantRepository, ICkCache ckCache) { TenantId = dataSource; InternalRepository = tenantRepository; CkCache = ckCache; }