public virtual async Task <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.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"));
            }

            await CuratedFeedService.CreatedCuratedPackageAsync(
                curatedFeed,
                packageRegistration,
                included : true,
                automaticallyCurated : false,
                notes : request.Notes);

            return(RedirectToRoute(RouteName.CuratedFeed, new { name = curatedFeed.Name }));
        }
示例#2
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 != Identity.Name))
            {
                return(new HttpStatusCodeResult(403));
            }

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

            var packageRegistration = GetService <IPackageRegistrationByIdQuery>().Execute(request.PackageId, includePackages: false);

            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"));
            }

            CuratedFeedService.CreatedCuratedPackage(
                curatedFeed,
                packageRegistration,
                included: true,
                automaticallyCurated: false,
                notes: request.Notes);

            return(RedirectToRoute(RouteName.CuratedFeed, new { name = curatedFeed.Name }));
        }
        public virtual ActionResult PostCuratedPackages(
            string curatedFeedName,
            CreateCuratedPackageRequest request)
        {
            var curatedFeed = GetService<ICuratedFeedByNameQuery>().Execute(curatedFeedName, includePackages: true);
            if (curatedFeed == null)
                return HttpNotFound();

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

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

            var packageRegistration = GetService<IPackageRegistrationByIdQuery>().Execute(request.PackageId);
            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");
            }

            GetService<ICreateCuratedPackageCommand>().Execute(
                curatedFeed.Key,
                packageRegistration.Key,
                notes: request.Notes);

            return RedirectToRoute(RouteName.CuratedFeed, new { name = curatedFeed.Name });
        }
        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.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");
            }

            CuratedFeedService.CreatedCuratedPackage(
                curatedFeed,
                packageRegistration,
                included: true,
                automaticallyCurated: false,
                notes: request.Notes);

            return RedirectToRoute(RouteName.CuratedFeed, new { name = curatedFeed.Name });
        }