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); }
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")); }
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(); }
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("/")); }
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); }
private static bool IsValidApiKey( this INugetServerProvider provider, PackageInputModel request) => string.Equals( provider?.NugetServerOptions?.ApiKey, request?.ApiKey);