public ViewModel Evaluate() { var isValidResultsDirectory = PathExistenceEvaluator.Evaluate(Properties.Settings.Default.ResultsPath); var isIdle = EnableDiagnosticsEvaluator.Evaluate(); return(new ViewModel { InspectionDirectory = string.IsNullOrWhiteSpace(Properties.Settings.Default.InspectionPath) ? "(None)" : Properties.Settings.Default.InspectionPath, AllowFolderChanges = true, IsIdle = isIdle, ResultsDirectory = string.IsNullOrWhiteSpace(Properties.Settings.Default.ResultsPath) ? "(None)" : Properties.Settings.Default.ResultsPath, IsValidResultsDirectory = isValidResultsDirectory, IsValidInspectionDirectory = PathExistenceEvaluator.Evaluate(Properties.Settings.Default.InspectionPath), GroupCount = 1, ChildDirectoryCount = ChildDirectoryCountEvaluator.Evaluate(), FoldersPerGroup = FoldersPerGroupEvaluator.Evaluate(ChildDirectoryCountEvaluator.Evaluate(), 1), EnableGroupSelecting = EnableGroupingEvaluator.Evaluate(new ViewModel { IsValidResultsDirectory = isValidResultsDirectory, IsIdle = isIdle }), EnableSpecificGroup = false, SpecificGroupToInspect = 1, HasFilesToInspectAndIsIdle = HasFilesToInspectAndIsIdleEvaluator.Evaluate(), FilesToInspect = string.Join(Environment.NewLine, FilesToInspectEvaluator.Evaluate()), RefactorCssDirectory = Properties.Settings.Default.RefactorPath, HasCssRefactorPaths = HasRefactorPathsEvaluator.Evaluate(), GeneratedCssDirectory = Properties.Settings.Default.GeneratedFilesPath, SolutionDirectory = Properties.Settings.Default.SolutionPath }); }
public List <GroupedFilesViewModel> Evaluate(int numberOfGroups, string[] directories) { var groups = new List <GroupedFilesViewModel>(); var foldersPerGroup = FoldersPerGroupEvaluator.Evaluate(directories.Count(), numberOfGroups); var i = 0; for (var g = 0; g < numberOfGroups; g++) { var group = new GroupedFilesViewModel { Files = new List <string>() }; group.StartDir = directories[i]; for (var f = 0; f < foldersPerGroup; f++) { if (i < directories.Count()) { group.Files.AddRange(DirectoryDescendentFilesEvaluator.Evaluate(directories[i]).ToList()); i++; } } group.EndDir = directories[i - 1]; groups.Add(group); } if (directories.Count() > i) { for (var r = i; r < directories.Count(); r++) { groups.Last().Files.Add(directories[r]); groups.Last().EndDir = directories[r]; } } return(groups); }