public IEnumerable<PackageOperationResult> AddSystemPackage(PackageRequest packageToAdd,
     IEnumerable<IPackageRepository> sourceRepositories,
     IPackageRepository systemRepository,
     PackageAddOptions options = PackageAddOptions.Default)
 {
     return CopyPackageCore(sourceRepositories, new[] { systemRepository }, ToDescriptor(packageToAdd, options), x => true);
 }
 IEnumerable <PackageOperationResult> AddSystemPackageCore(IEnumerable <IPackageRepository> sourceRepositories,
                                                           IPackageRepository systemRepository,
                                                           PackageRequest packageToAdd,
                                                           PackageAddOptions options)
 {
     return(CopyPackageCore(sourceRepositories, new[] { systemRepository }, ToDescriptor(packageToAdd, options), x => packageToAdd.Name.EqualsNoCase(x)));
 }
 static PackageDependency ToDependency(PackageRequest packageToAdd, PackageAddOptions options)
 {
     return(new PackageDependencyBuilder(packageToAdd.Name)
            .SetVersionVertices(ToVersionVertices(packageToAdd))
            .Anchored((options & PackageAddOptions.Anchor) == PackageAddOptions.Anchor)
            .Content((options & PackageAddOptions.Content) == PackageAddOptions.Content));
 }
        IEnumerable <PackageOperationResult> AddProjectPackageCore(PackageRequest packageToAdd,
                                                                   IEnumerable <IPackageRepository> sourceRepositories,
                                                                   IPackageDescriptor projectDescriptor,
                                                                   IPackageRepository projectRepository,
                                                                   PackageAddOptions options)
        {
            var finalDescriptor = (options & PackageAddOptions.UpdateDescriptor) == PackageAddOptions.UpdateDescriptor
                                          ? projectDescriptor
                                          : new PackageDescriptor(projectDescriptor);
            var existingEntries = finalDescriptor.Dependencies.Where(x => x.Name.EqualsNoCase(packageToAdd.Name)).ToList();

            if (existingEntries.Count > 0)
            {
                finalDescriptor.Dependencies.RemoveRange(existingEntries);
                yield return(new PackageDescriptorUpdateResult(PackageDescriptorDependencyUpdate.Updated));
            }
            else
            {
                yield return(new PackageDescriptorUpdateResult(PackageDescriptorDependencyUpdate.Added));
            }

            finalDescriptor.Dependencies.Add(ToDependency(packageToAdd, options));

            foreach (var m in CopyPackageCore(sourceRepositories, new[] { projectRepository }, finalDescriptor, x => true))
            {
                yield return(m);
            }
        }
        public IPackageAddResult AddProjectPackage(PackageRequest packageToAdd, IEnumerable<IPackageRepository> sourceRepositories, IPackageDescriptor projectDescriptor, IPackageRepository projectRepository, PackageAddOptions options = PackageAddOptions.Default)
        {
            Check.NotNull(packageToAdd, "packageToAdd");
            Check.NoNullElements(sourceRepositories, "sourceRepositories");
            Check.NotNull(projectDescriptor, "projectDescriptor");
            Check.NotNull(projectRepository, "projectRepository");

            return new PackageAddResultIterator(AddProjectPackageCore(packageToAdd, sourceRepositories, projectDescriptor, projectRepository, options));
        }
 static IPackageDescriptor ToDescriptor(PackageRequest package, PackageAddOptions options)
 {
     return(new PackageDescriptor
     {
         Dependencies =
         {
             new PackageDependencyBuilder(package.Name)
             .Content((options & PackageAddOptions.Content) == PackageAddOptions.Content)
             .Anchored((options & PackageAddOptions.Anchor) == PackageAddOptions.Anchor)
             .SetVersionVertices(ToVersionVertices(package))
         }
     });
 }
        public IPackageAddResult AddSystemPackage(PackageRequest packageToAdd,
                                                  IEnumerable <IPackageRepository> sourceRepositories,
                                                  IPackageRepository systemRepository,
                                                  PackageAddOptions options = PackageAddOptions.Default)
        {
            Check.NotNull(packageToAdd, "packageToAdd");
            Check.NoNullElements(sourceRepositories, "sourceRepositories");
            Check.NotNull(systemRepository, "systemRepository");

            var returnValue = AddSystemPackageCore(sourceRepositories, systemRepository, packageToAdd, options);

            if ((options & PackageAddOptions.Hooks) == PackageAddOptions.Hooks && _hooks != null)
            {
                returnValue = WrapWithHooks(returnValue, ToDescriptor(packageToAdd, options), systemRepository, "system");
            }
            return(new PackageAddResultIterator(returnValue));
        }
        public IPackageAddResult AddProjectPackage(PackageRequest packageToAdd,
                                                   IEnumerable <IPackageRepository> sourceRepositories,
                                                   IPackageDescriptor projectDescriptor,
                                                   IPackageRepository projectRepository,
                                                   PackageAddOptions options = PackageAddOptions.Default)
        {
            Check.NotNull(packageToAdd, "packageToAdd");
            Check.NoNullElements(sourceRepositories, "sourceRepositories");
            Check.NotNull(projectDescriptor, "projectDescriptor");
            Check.NotNull(projectRepository, "projectRepository");

            var result = AddProjectPackageCore(packageToAdd, sourceRepositories, projectDescriptor, projectRepository, options);

            if ((options & PackageAddOptions.Hooks) == PackageAddOptions.Hooks && _hooks != null)
            {
                result = WrapWithHooks(result, projectDescriptor, projectRepository, "project");
            }
            return(new PackageAddResultIterator(result));
        }
Exemple #9
0
        IEnumerable <PackageOperationResult> AddProjectPackageCore(PackageRequest packageToAdd,
                                                                   IEnumerable <IPackageRepository> sourceRepositories,
                                                                   IPackageDescriptor projectDescriptor,
                                                                   IPackageRepository projectRepository,
                                                                   PackageAddOptions options)
        {
            if (projectDescriptor.Dependencies.Where(x => x.Name.EqualsNoCase(packageToAdd.Name)).Any())
            {
                yield return(new PackageDependencyAlreadyExists(packageToAdd.Name));

                yield break;
            }

            var dependency = ToDependency(packageToAdd, options);

            projectDescriptor.Dependencies.Add(dependency);
            yield return(new PackageDependencyAddedResult(dependency));

            foreach (var m in CopyPackageCore(sourceRepositories, new[] { projectRepository }, projectDescriptor, x => x.EqualsNoCase(packageToAdd.Name)))
            {
                yield return(m);
            }
        }
 PackageDescriptor ToDescriptor(PackageRequest package, PackageAddOptions options)
 {
     return new PackageDescriptor
     {
         Dependencies =
                     {
                             new PackageDependencyBuilder(package.Name)
                                 .Content((options & PackageAddOptions.Content) == PackageAddOptions.Content)
                                 .Anchored((options & PackageAddOptions.Anchor) == PackageAddOptions.Anchor)
                                 .SetVersionVertices(ToVersionVertices(package))
                     }
     };
 }
 PackageDependency ToDependency(PackageRequest packageToAdd, PackageAddOptions options)
 {
     return new PackageDependencyBuilder(packageToAdd.Name)
             .SetVersionVertices(ToVersionVertices(packageToAdd))
             .Anchored((options & PackageAddOptions.Anchor) == PackageAddOptions.Anchor)
             .Content((options & PackageAddOptions.Content) == PackageAddOptions.Content);
 }
        IEnumerable<PackageOperationResult> AddProjectPackageCore(PackageRequest packageToAdd, IEnumerable<IPackageRepository> sourceRepositories, PackageDescriptor projectDescriptor, IPackageRepository projectRepository, PackageAddOptions options)
        {
            var finalDescriptor = (options & PackageAddOptions.UpdateDescriptor) == PackageAddOptions.UpdateDescriptor
                                          ? projectDescriptor
                                          : new PackageDescriptor(projectDescriptor);
            var existingEntries = finalDescriptor.Dependencies.Where(x => x.Name.EqualsNoCase(packageToAdd.Name)).ToList();
            if (existingEntries.Count > 0)
            {
                finalDescriptor.Dependencies.RemoveRange(existingEntries);
                yield return new PackageDescriptorUpdateResult(PackageDescriptorDependencyUpdate.Updated);
            }
            else
            {
                yield return new PackageDescriptorUpdateResult(PackageDescriptorDependencyUpdate.Added);
            }

            finalDescriptor.Dependencies.Add(ToDependency(packageToAdd, options));

            foreach (var m in CopyPackageCore(sourceRepositories, new[] { projectRepository }, finalDescriptor, x => true))
                yield return m;
        }