public async Task <List <WorkforceRequirement> > GetWorkforceRequirementsAsync(List <Material> allMaterials = null) { Task <List <Material> > materialsTask = allMaterials == null?GetMaterialsAsync() : Task.FromResult(allMaterials); return((await ReadFromFileAndDeserializeAsync(WORKFORCES_PATH, async source => await source.GetWorkforceRequirementsAsync(await materialsTask), list => SerializeAndWriteToFileAsync(WORKFORCES_PATH, workforcesLock, list, async requirement => await Task.Run(() => requirement.ToJson())), workforcesLock, async token => WorkforceRequirement.FromJson((JObject)token, await materialsTask))).ToList()); }
public List <WorkforceRequirement> GetWorkforceRequirements(List <Material> allMaterials = null) { if (allMaterials == null) { allMaterials = GetMaterials(); } return(ReadFromFileAndDeserialize(WORKFORCES_PATH, source => source.GetWorkforceRequirements(allMaterials), list => SerializeAndWriteToFile(WORKFORCES_PATH, workforcesLock, list, requirement => requirement.ToJson()), workforcesLock, token => WorkforceRequirement.FromJson((JObject)token, allMaterials))); }