ObservableCollection <RepositoryFileModel> GetActualFiles(List <string> usedVersions, HashSet <string> usedFiles, Dictionary <Repository, List <Team> > teams)
        {
            ObservableCollection <RepositoryFileModel> result = new ObservableCollection <RepositoryFileModel>();

            foreach (var repository in teams.Keys)
            {
                foreach (Team team in teams[repository])
                {
                    if (!usedVersions.Contains(team.Version))
                    {
                        continue;
                    }
                    foreach (string teamPath in team.TeamInfos.Select(i => testsService.GetResourcePath(repository, i.TestResourcesPath)).Distinct())
                    {
                        foreach (string file in Directory.EnumerateFiles(teamPath, "*", SearchOption.AllDirectories))
                        {
                            if (!usedFiles.Contains(file.ToLower()))
                            {
                                result.Add(new RepositoryFileModel(file, team.Version));
                            }
                        }
                    }
                }
            }
            return(result);
        }
        public static HashSet <string> GetUsedFiles(Dictionary <Repository, List <string> > usedFilesByRep, ITestsService testsService)
        {
            HashSet <string> usedFiles = new HashSet <string>();

            foreach (var usedFileByRep in usedFilesByRep)
            {
                foreach (string fileRelPath in usedFileByRep.Value)
                {
                    string filePath = testsService.GetResourcePath(usedFileByRep.Key, fileRelPath);
                    if (File.Exists(filePath))
                    {
                        usedFiles.Add(filePath.ToLower());
                    }
                }
            }
            return(usedFiles);
        }