private void CreateSolutionFolder( SolutionFolder solutionFolder, SolutionFolderData solutionFolderData, Action<double> progressAction, SolutionDataViewModel solutionData, CancellationToken ct) { if (!solutionData.CreateTests && solutionFolder == null && solutionFolderData.Name == "Tests") { return; } if (!solutionData.CreateFakes && solutionFolderData.Name == "Fake") { return; } var addedProject = solutionFolder == null ? GetSolution().AddSolutionFolder(solutionFolderData.Name) : solutionFolder.AddSolutionFolder(solutionFolderData.Name); if (solutionFolderData.Items.Length == 0) { return; } SolutionFolder subFolder = addedProject.Object as SolutionFolder; var k = 1.0/solutionFolderData.Items.Length; for (int i = 0; i < solutionFolderData.Items.Length; ++i) { var pr = k*i; progressAction(pr); int j = i; CreateSolutionItem( subFolder, solutionFolderData.Items[i], progress => { pr = k*j + progress*k; progressAction(pr); }, solutionData, ct); ct.ThrowIfCancellationRequested(); } }
private SolutionFolderData CreateSolutionFolderData(ISolutionFolderTemplateInfo solutionFolderInfo, string destinationFolder) { SolutionFolderData solutionFolderData = new SolutionFolderData { Items = solutionFolderInfo.Items .Select(info => CreateSolutionItemData(info, destinationFolder)) .ToArray() }; return solutionFolderData; }