public async Task RenderProjectAsync() { await CleanOutputAsync(); var tasksGroupContent = Task.Run(async() => { var dataModel = await DataService.GetDataModelAsync(); var pages = await PageModelReaderService.LoadContentsIdsAsync(); var pageTasks = pages.Select(pageId => ProcessPageByIdAsync(pageId, dataModel)).ToList(); await Task.WhenAll(pageTasks).ConfigureAwait(false); }); var tasksGroupAssets = Task.Run(async() => { var assets = await AssetsReaderService.LoadContentsIdsAsync(); var tasks = assets.Select(CopyAssetByIdAsync).ToList(); await Task.WhenAll(tasks).ConfigureAwait(false); }); await Task.WhenAll(tasksGroupContent, tasksGroupAssets).ConfigureAwait(false); }
private async Task CopyAssetByIdAsync(string id) { await LoggerService.WriteLogMessage($"{DateTime.Now.ToLongTimeString()}: Started copying of asset \"{id}\""); var content = await AssetsReaderService.LoadContentByIdAsync(id).ConfigureAwait(false); await AssetsWriterService.SaveContentAsync(id, content).ConfigureAwait(false); await LoggerService.WriteLogMessage($"{DateTime.Now.ToLongTimeString()}: Finished copying of asset \"{id}\""); }