Exemple #1
0
        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();
            }
        }
Exemple #2
0
 private SolutionFolderData CreateSolutionFolderData(ISolutionFolderTemplateInfo solutionFolderInfo, string destinationFolder)
 {
     SolutionFolderData solutionFolderData = new SolutionFolderData
     {
         Items = solutionFolderInfo.Items
             .Select(info => CreateSolutionItemData(info, destinationFolder))
             .ToArray()
     };
     return solutionFolderData;
 }