public async Task <ImmutableList <ProjectDefinition> > GetAllProjectDefinitionsAsync() { try { await Semaphore.WaitAsync(); var serializedProjects = await fileReader.GetAllTextAsync(ProjectsDefinitionStoreFile); return(JsonSerializer.Deserialize <ImmutableList <ProjectDefinition> > (serializedProjects)); } finally { Semaphore.Release(); } }