public async Task Should_call_async_creator_once_when_context_exists() { SetupContext(); var value1 = await sut.GetOrCreateAsync("Key", () => Task.FromResult(++called)); var value2 = await sut.GetOrCreateAsync("Key", () => Task.FromResult(++called)); Assert.Equal(1, called); Assert.Equal(1, value1); Assert.Equal(1, value2); }
public Task <(IAppEntity, ISchemaEntity)> GetAppWithSchemaAsync(Guid appId, Guid id) { return(requestCache.GetOrCreateAsync($"GetAppWithSchemaAsync({appId}, {id})", async() => { using (Profile.Method <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); } }));