public ArchivedProjectAndVersion FindArchivedProjectAndVersion(ReferenceCandidate referenceCandidate)
 {
   ProjectFromRepository projectFromRepository = FindProject(referenceCandidate.ProjectName);
   if (projectFromRepository == null) throw new YouFoundABugException();
   ArchivedProjectVersion version = projectFromRepository.Project.FindVersionByNumber(referenceCandidate.VersionNumber);
   if (version == null) throw new YouFoundABugException();
   return new ArchivedProjectAndVersion(projectFromRepository, version);
 }
 private static List<ReferenceCandidate> FindReferenceCandidate(RepositorySet repositorySet, string repositoryName, string projectName)
 {
   List<ReferenceCandidate> found = new List<ReferenceCandidate>();
   ReferenceCandidate lookingFor = new ReferenceCandidate(repositoryName, projectName);
   foreach (ReferenceCandidate candidate in repositorySet.FindAllReferenceCandidates())
   {
     if (candidate.Equals(lookingFor))
     {
       found.Add(candidate);
     }
   }
   return found;
 }