GetFeedByName() public method

public GetFeedByName ( string name, bool includePackages ) : CuratedFeed
name string
includePackages bool
return CuratedFeed
        public virtual async Task <ActionResult> DeleteCuratedPackage(
            string curatedFeedName,
            string curatedPackageId)
        {
            var curatedFeed = CuratedFeedService.GetFeedByName(curatedFeedName, includePackages: true);

            if (curatedFeed == null)
            {
                return(HttpNotFound());
            }

            var curatedPackage = curatedFeed.Packages.SingleOrDefault(cp => cp.PackageRegistration.Id == curatedPackageId);

            if (curatedPackage == null)
            {
                return(HttpNotFound());
            }

            if (curatedFeed.Managers.All(manager => manager.Username != User.Identity.Name))
            {
                return(new HttpStatusCodeResult(403));
            }

            await CuratedFeedService.DeleteCuratedPackageAsync(
                curatedFeed.Key,
                curatedPackage.Key);

            return(new HttpStatusCodeResult(204));
        }
        public override async Task CurateAsync(Package galleryPackage, PackageArchiveReader nugetPackage, bool commitChanges)
        {
            // Make sure the target feed exists
            CuratedFeed feed = CuratedFeedService.GetFeedByName(CuratedFeedName, includePackages: true);

            if (feed != null && galleryPackage.Tags != null)
            {
                // Break the tags up so we can be sure we don't catch any partial matches (i.e. "foobar" when we're looking for "foo")
                string[] tags = galleryPackage.Tags.Split();

                // Check if this package should be curated
                if (tags.Any(tag => RequiredTags.Contains(tag, StringComparer.OrdinalIgnoreCase)))
                {
                    // It should!
                    // But now we need to ensure that the package's dependencies are also curated
                    if (DependenciesAreCurated(galleryPackage, feed))
                    {
                        await CuratedFeedService.CreatedCuratedPackageAsync(
                            feed,
                            galleryPackage.PackageRegistration,
                            automaticallyCurated : true,
                            commitChanges : commitChanges);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public override async Task CurateAsync(
            Package galleryPackage,
            PackageArchiveReader nugetPackage,
            bool commitChanges)
        {
            var shouldBeIncluded = ShouldCuratePackage(galleryPackage, nugetPackage);

            if (!shouldBeIncluded)
            {
                return;
            }

            var curatedFeed = CuratedFeedService.GetFeedByName("webmatrix", includePackages: true);

            if (curatedFeed == null)
            {
                return;
            }

            if (DependenciesAreCurated(galleryPackage, curatedFeed))
            {
                await CuratedFeedService.CreatedCuratedPackageAsync(
                    curatedFeed,
                    galleryPackage.PackageRegistration,
                    included : true,
                    automaticallyCurated : true,
                    commitChanges : commitChanges);
            }
        }
Ejemplo n.º 4
0
        public virtual ActionResult PostCuratedPackages(
            string curatedFeedName,
            CreateCuratedPackageRequest request)
        {
            var curatedFeed = CuratedFeedService.GetFeedByName(curatedFeedName, includePackages: true);

            if (curatedFeed == null)
            {
                return(HttpNotFound());
            }

            if (curatedFeed.Managers.All(manager => manager.Username != User.Identity.Name))
            {
                return(new HttpStatusCodeResult(403));
            }

            if (!ModelState.IsValid)
            {
                ViewBag.CuratedFeedName = curatedFeed.Name;
                return(View("CreateCuratedPackageForm"));
            }

            var packageRegistration = EntitiesContext.PackageRegistrations
                                      .Where(pr => pr.Id == request.PackageId)
                                      .Include(pr => pr.Packages)
                                      .Include(pr => pr.Owners)
                                      .FirstOrDefault();

            if (packageRegistration == null)
            {
                ModelState.AddModelError("PackageId", Strings.PackageWithIdDoesNotExist);
                ViewBag.CuratedFeedName = curatedFeed.Name;
                return(View("CreateCuratedPackageForm"));
            }

            if (curatedFeed.Packages.Any(cp => cp.PackageRegistration.Key == packageRegistration.Key))
            {
                ModelState.AddModelError("PackageId", Strings.PackageIsAlreadyCurated);
                ViewBag.CuratedFeedName = curatedFeed.Name;
                return(View("CreateCuratedPackageForm"));
            }

            var packages = packageRegistration.Packages.ToList();

            foreach (var package in packages)
            {
                CuratedFeedService.CreatedCuratedPackage(
                    curatedFeed,
                    package,
                    included: true,
                    automaticallyCurated: false,
                    notes: request.Notes,
                    commitChanges: false);
            }
            CuratedFeedService.UpdateIsLatest(packageRegistration, false);
            EntitiesContext.SaveChanges();

            return(RedirectToRoute(RouteName.CuratedFeed, new { name = curatedFeed.Name }));
        }
Ejemplo n.º 5
0
        public virtual async Task <ActionResult> ListPackages(string curatedFeedName, string q, int page = 1, bool prerel = true)
        {
            if (page < 1)
            {
                page = 1;
            }

            q = (q ?? string.Empty).Trim();

            var searchFilter = SearchAdaptor.GetSearchFilter(
                q,
                page,
                includePrerelease: prerel,
                sortOrder: null,
                context: SearchFilter.UISearchContext,
                semVerLevel: SemVerLevelKey.SemVerLevel2);

            searchFilter.CuratedFeed = CuratedFeedService.GetFeedByName(curatedFeedName, includePackages: false);
            if (searchFilter.CuratedFeed == null)
            {
                return(HttpNotFound());
            }

            SearchResults results = await SearchService.Search(searchFilter);

            int totalHits = results.Hits;

            if (page == 1 && !results.Data.Any())
            {
                // In the event the index wasn't updated, we may get an incorrect count.
                totalHits = 0;
            }

            var viewModel = new PackageListViewModel(
                results.Data,
                GetCurrentUser(),
                results.IndexTimestampUtc,
                q,
                totalHits,
                page - 1,
                Constants.DefaultPackageListPageSize,
                Url,
                curatedFeedName,
                includePrerelease: prerel);

            ViewBag.SearchTerm = q;

            return(View("ListPackages", viewModel));
        }
        public virtual ActionResult GetCreateCuratedPackageForm(string curatedFeedName)
        {
            var curatedFeed = CuratedFeedService.GetFeedByName(curatedFeedName, includePackages: false);

            if (curatedFeed == null)
            {
                return(HttpNotFound());
            }

            if (curatedFeed.Managers.All(manager => manager.Username != User.Identity.Name))
            {
                return(new HttpStatusCodeResult(403));
            }

            ViewBag.CuratedFeedName = curatedFeed.Name;
            return(View());
        }
Ejemplo n.º 7
0
        public virtual ActionResult PatchCuratedPackage(
            string curatedFeedName,
            string curatedPackageId,
            ModifyCuratedPackageRequest request)
        {
            var curatedFeed = CuratedFeedService.GetFeedByName(curatedFeedName, includePackages: true);

            if (curatedFeed == null)
            {
                return(HttpNotFound());
            }

            var curatedPackage = curatedFeed.Packages.SingleOrDefault(cp => cp.PackageRegistration.Id == curatedPackageId);

            if (curatedPackage == null)
            {
                return(HttpNotFound());
            }

            if (curatedFeed.Managers.All(manager => manager.Username != Identity.Name))
            {
                return(new HttpStatusCodeResult(403));
            }

            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(400));
            }

            CuratedFeedService.ModifyCuratedPackage(
                curatedFeed.Key,
                curatedPackage.Key,
                request.Included);

            return(new HttpStatusCodeResult(204));
        }
Ejemplo n.º 8
0
        public override void Curate(
            Package galleryPackage,
            INupkg nugetPackage,
            bool commitChanges)
        {
            var curatedFeed = CuratedFeedService.GetFeedByName("webmatrix", includePackages: true);

            if (curatedFeed == null)
            {
                return;
            }

            var shouldBeIncluded = ShouldCuratePackage(curatedFeed, galleryPackage, nugetPackage);

            if (shouldBeIncluded)
            {
                CuratedFeedService.CreatedCuratedPackage(
                    curatedFeed,
                    galleryPackage.PackageRegistration,
                    included: true,
                    automaticallyCurated: true,
                    commitChanges: commitChanges);
            }
        }