Exemple #1
0
        RespondDeletePackageAsync(
            this INugetServerProvider provider,
            HttpContext context,
            PackageInputModel request)
        {
            var packages =
                provider
                .NuspecProvider
                .GetAll()
                .Where(n => n.Metadata != null)
                .Where(n => string.Equals(
                           n.Metadata.Id, request.Id,
                           StringComparison
                           .InvariantCultureIgnoreCase))
                .Where(n =>
                       (NuGetVersionString)n.Metadata.Version
                       == request.Version)
                .ToList();

            if (packages.Count < 1)
            {
                provider.RespondNotFound(context);
                return;
            }

            foreach (var package in packages)
            {
                await provider.NupkgProvider
                .DeleteAsync(package,
                             context.RequestAborted);
            }
        }
        public ICollection <string> ValidatePackage(PackageInputModel model)
        {
            var errors = new List <string>();

            if (string.IsNullOrWhiteSpace(model.Description) || model.Description.Length < 5 || model.Description.Length > 20)
            {
                errors.Add($"Name '{model.Description}' is not valid. It must be more than {5} and less than {20} characters long.");
            }

            return(errors);
        }
Exemple #3
0
        public IHttpResponse Create(PackageInputModel model)
        {
            if (User.Role != Role.Admin.ToString())
            {
                return(Redirect("/"));
            }

            model.Recipients = _packagesService.GetRecipients(Db);

            return(View("/create", model));
        }
        public IActionResult Create(PackageInputModel package)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect("/Packages/Create"));
            }

            packageService.Create(package.Description, package.Weight, package.ShippingAddress, package.RecipientName);

            return(Redirect("/Packages/Pending"));
        }
Exemple #5
0
        public async Task AddAsync(PackageInputModel model)
        {
            await this.packageRepository
            .AddAsync(new Package()
            {
                Name        = model.Name,
                Price       = model.Price,
                MistralCode = model.MistralCode,
                MistralName = model.MistralName,
            });

            await this.packageRepository.SaveChangesAsync();
        }
Exemple #6
0
        public async Task <int> Create(PackageInputModel model)
        {
            var package = new Package
            {
                Description     = model.Description,
                Weight          = model.Weight,
                ShippingAddress = model.ShippingAddress,
                RecipientId     = model.RecipientId,
                CreatedOn       = DateTime.UtcNow
            };

            return(await UpdateDatabase(package, "Pending"));
        }
        public PackageInputModel GetPackage(ShippingDataInputModel shipping)
        {
            var cart = _cartRepository.All().To <CartViewModel>().FirstOrDefault(c => c.Id.Equals(shipping.CartId));

            var model = new PackageInputModel
            {
                CartId       = cart.Id,
                Cart         = cart,
                ShippingData = shipping
            };

            return(model);
        }
        public IActionResult Create([FromForm] PackageInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var isCreated = _packagesService.Create(model);

            if (isCreated.Result == 1)
            {
                return(Redirect("/Home/Index"));
            }

            return(View(model));
        }
        public async Task <IActionResult> Add(PackageInputModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(inputModel));
            }

            try
            {
                await this.packagesService.AddAsync(inputModel);

                return(this.RedirectToAction("Index"));
            }
            catch (Exception)
            {
                return(this.NotFound());
            }
        }
        public HttpResponse Create(PackageInputModel model)
        {
            if (!this.User.IsAuthenticated)
            {
                return(this.Unauthorized());
            }

            var errors = this.validator.ValidatePackage(model);

            if (errors.Any())
            {
                return(this.Error(errors));
            }

            this.packageService.Add(model.Description, model.Weight, model.ShippingAddress, model.RecipientName);

            return(this.Redirect("/"));
        }
Exemple #11
0
        RespondPutPackageAsync(
            this INugetServerProvider provider,
            HttpContext context,
            PackageInputModel request)
        {
            if (!context.Request.HasFormContentType)
            {
                provider.RespondWithStatusCode(
                    context, HttpStatusCode.BadRequest);
                return;
            }


            try
            {
                var form = await context.Request.ReadFormAsync(context.RequestAborted);

                var formFile = form?.Files?.FirstOrDefault();
                if (formFile == null)
                {
                    provider.RespondWithStatusCode(
                        context, HttpStatusCode.BadRequest);
                    return;
                }

                using (var formFileStream = formFile.OpenReadStream())
                    using (var inputStream = new MemoryStream())
                    {
                        await formFileStream
                        .CopyToAsync(inputStream);

                        inputStream.Seek(0, SeekOrigin.Begin);

                        var nuspec = await
                                     Zip.ReadNuspecFromPackageAsync(
                            inputStream);

                        if (nuspec?.Metadata == null)
                        {
                            provider.RespondWithStatusCode(
                                context, HttpStatusCode.BadRequest);
                            return;
                        }
                        var packages =
                            provider
                            .NuspecProvider
                            .GetAll()
                            .Where(n => n.Metadata != null)
                            .Where(n => string.Equals(
                                       n.Metadata.Id, nuspec.Metadata.Id,
                                       StringComparison
                                       .InvariantCultureIgnoreCase))
                            .Where(n =>
                                   (NuGetVersionString)n.Metadata.Version
                                   == nuspec.Metadata.Version)
                            .ToList();
                        if (packages.Count != 0)
                        {
                            provider.RespondWithStatusCode(
                                context, HttpStatusCode.Conflict);
                            return;
                        }

                        inputStream.Seek(0, SeekOrigin.Begin);
                        var isAdded = await provider.NupkgProvider.AddAsync(
                            nuspec.Metadata,
                            inputStream, context.RequestAborted);

                        if (isAdded)
                        {
                            provider.RespondWithStatusCode(
                                context, HttpStatusCode.Created);
                            return;
                        }
                    }
            }
            catch
            {
            }

            provider.RespondWithStatusCode(
                context,
                HttpStatusCode.InternalServerError);
        }
Exemple #12
0
 private static bool IsValidApiKey(
     this INugetServerProvider provider,
     PackageInputModel request)
 => string.Equals(
     provider?.NugetServerOptions?.ApiKey,
     request?.ApiKey);