using System.ComponentModel.DataAnnotations; using System.IO; using Microsoft.AspNetCore.Mvc; using isnd.Attributes; using isnd.Entities; namespace isnd.Controllers { public partial class PackagesController { // Web get nupkg [HttpGet(_pkgRootPrefix + ApiConfig.Get + "/{id}/{lower}/{idf}-{lowerf}.nupkg")] public IActionResult GetPackage( [FromRoute][SafeName][Required] string id, [FromRoute][SafeName][Required] string lower, [FromRoute] string idf, [FromRoute] string lowerf) { var pkgpath = Path.Combine(isndSettings.PackagesRootDir, id, lower, $"{id}-{lower}.nupkg" ); FileInfo pkgfi = new FileInfo(pkgpath); if (!pkgfi.Exists) { return BadRequest("!pkgfi.Exists"); } return File(pkgfi.OpenRead(), "application/zip; charset=binary"); } // Web get spec [HttpGet(_pkgRootPrefix + ApiConfig.Get + "/{id}/{lower}/{idf}-{lowerf}.nuspec")] public IActionResult GetNuspec( [FromRoute][SafeName][Required] string id, [FromRoute][SafeName][Required] string lower, [FromRoute][SafeName][Required] string idf, [FromRoute][SafeName][Required] string lowerf) { var pkgpath = Path.Combine(isndSettings.PackagesRootDir, id, lower, $"{id}.nuspec"); FileInfo pkgfi = new FileInfo(pkgpath); if (!pkgfi.Exists) { return BadRequest("!pkgfi.Exists"); } return File(pkgfi.OpenRead(), "text/xml; charset=utf-8"); } } }