예제 #1
0
        public PinnedProject FindPinForAssembly(string assemblyName)
        {
            PinnedProject pinnedProject;

            if (IsAssemblyInPinnedRepo(assemblyName, out pinnedProject))
            {
                return(pinnedProject);
            }

            if (PinRegistry.IsAssemblyPinned(assemblyName))
            {
                var assembly = AssemblyRegistry.GetAssembly(assemblyName);
                if (assembly == null)
                {
                    throw new ApplicationException("I don't know where the assembly '" + assemblyName + "' is. Have you built it on your machine?");
                }

                return(new PinnedProject
                {
                    Pin = PinRegistry.GetAssemblyPin(assemblyName),
                    Project = assembly.Projects.OrderByDescending(p => p.Timestamp).First()
                });
            }

            return(null);
        }
예제 #2
0
 private IEnumerable <PinnedRepo> GetPinnedRepos()
 {
     return(RepoRegistry.GetRepos().Where(r => PinRegistry.IsRepoPinned(r.Name)).Select(r => new PinnedRepo
     {
         Pin = PinRegistry.GetRepoPin(r.Name),
         Repo = r
     }));
 }
예제 #3
0
        public bool IsAssemblyPinned(string assemblyName)
        {
            PinnedProject notUsed;

            return(PinRegistry.IsAssemblyPinned(assemblyName) || IsAssemblyInPinnedRepo(assemblyName, out notUsed));
        }