public async Task <List <IAppEntity> > GetUserAppsAsync(string userId, PermissionSet permissions) { var apps = await localCache.GetOrCreateAsync($"GetUserApps({userId})", () => { return(indexForApps.GetAppsForUserAsync(userId, permissions)); }); return(apps); }
public Task <(IAppEntity?, ISchemaEntity?)> GetAppWithSchemaAsync(DomainId appId, DomainId id) { return(localCache.GetOrCreateAsync($"GetAppWithSchemaAsync({appId}, {id})", async() => { return await GetAppWithSchemaUncachedAsync(appId, id); })); }
public async Task Should_call_async_creator_once_when_context_exists() { using (sut.StartContext()) { var value1 = await sut.GetOrCreateAsync("Key", () => Task.FromResult(++called)); await Task.Delay(5); var value2 = await sut.GetOrCreateAsync("Key", () => Task.FromResult(++called)); Assert.Equal(1, called); Assert.Equal(1, value1); Assert.Equal(1, value2); } }
public async Task <IAppEntity?> GetAppAsync(DomainId appId, bool canCache = false) { var app = await localCache.GetOrCreateAsync(AppCacheKey(appId), () => { return(indexForApps.GetAppAsync(appId, canCache)); }); if (app != null) { localCache.Add(AppCacheKey(app.Id), app); } return(app?.IsArchived == true ? null : app); }
public Task <(IAppEntity, ISchemaEntity)> GetAppWithSchemaAsync(Guid appId, Guid id) { return(localCache.GetOrCreateAsync($"GetAppWithSchemaAsync({appId}, {id})", async() => { var app = await GetAppAsync(appId); if (app == null) { return (null, null); } var schema = await GetSchemaAsync(appId, id, false); if (schema == null) { return (null, null); } return (app, schema); }));
public Task <(IAppEntity, ISchemaEntity)> GetAppWithSchemaAsync(Guid appId, Guid id) { return(localCache.GetOrCreateAsync($"GetAppWithSchemaAsync({appId}, {id})", async() => { using (Profiler.TraceMethod <AppProvider>()) { var app = await grainFactory.GetGrain <IAppGrain>(appId).GetStateAsync(); if (!IsExisting(app)) { return (null, null); } var schema = await grainFactory.GetGrain <ISchemaGrain>(id).GetStateAsync(); if (!IsExisting(schema, false)) { return (null, null); } return (app.Value, schema.Value); } }));