Esempio n. 1
0
        public static IObservable <string> GetPackages(XpandPackageSource packageSource, string xpandFeed, string nugetFeed, XpandPackageFilter filter)
        {
            var allLabPackages = Providers.ListPackages(xpandFeed)
                                 .Where(s => FilterMatch(s, filter));

            if (packageSource == XpandPackageSource.Nuget)
            {
                allLabPackages = allLabPackages.SelectMany(id => Providers.ListPackages(nugetFeed, id));
            }
            return(allLabPackages.Distinct());
        }
Esempio n. 2
0
 public Task <NugetPackage[]> Packages(XpandPackageSource packageSource = XpandPackageSource.Xpand)
 {
     return(_memoryCache.GetOrCreate($"{nameof(Packages)}{packageSource}",
                                     entry => Observable.Return(FindXpandNugetPackage.GetPackages(packageSource, XpandFeed, NugetFeed, XpandPackageFilter.All)
                                                                .Select(o => new NugetPackage {
         Id = o.BaseObject.GetPropertyValue("Id").ToString(),
         Version = o.BaseObject.GetPropertyValue("Version").ToString()
     })
                                                                .ToEnumerable().ToArray())
                                     , AbsoluteExpirationRelativeToNow, Time)
            .ToTask());
 }
 public static IObservable <PSObject> GetPackages(XpandPackageSource packageSource, string xpandFeed, string nugetFeed, XpandPackageFilter filter)
 {
     if (packageSource == XpandPackageSource.Xpand)
     {
         nugetFeed = null;
     }
     else if (packageSource == XpandPackageSource.Nuget)
     {
         xpandFeed = null;
     }
     return(Providers.ListXpandPackages(xpandFeed, nugetFeed).ToPackageObject()
            .Where(tuple => FilterMatch(tuple, filter))
            .Select(_ => PSObject.AsPSObject(new{ _.Id, _.Version })));
 }
Esempio n. 4
0
        public static IObservable <PSObject> GetPackages(XpandPackageSource packageSource, string xpandFeed, string nugetFeed, XpandPackageFilter filter)
        {
            var allLabPackages = Providers.ListPackages(xpandFeed).ToPackageObject()
                                 .Where(tuple => FilterMatch(tuple, filter));

            if (packageSource == XpandPackageSource.Nuget)
            {
                IObservable <(string Id, Version Version)> Metadata((string Id, Version Version) tuple) =>
                Providers.PackageMetadata(nugetFeed, tuple.Id).ToPackageObject()
                .GroupBy(_ => _.Id).SelectMany(obs => obs.LastAsync());

                allLabPackages = allLabPackages.SelectMany(Metadata);
            }

            return(allLabPackages.Distinct().Select(_ => PSObject.AsPSObject(new{ _.Id, _.Version })));
        }
Esempio n. 5
0
 private string GetFeed(XpandPackageSource source)
 {
     return((string)this.Invoke($"Get-packageFeed -{source}").First().BaseObject);
 }