public void CreatePackage(HttpContextBase context) { var request = context.Request; // Get the api key from the header var apiKey = request.Headers[ApiKeyHeader]; // Get the package from the request body // ReSharper disable once PossibleNullReferenceException var stream = request.Files.Count > 0 ? request.Files[0].InputStream : request.InputStream; // Copy the package to a temporary file var temporaryFile = Path.GetTempFileName(); using (var temporaryFileStream = File.Open(temporaryFile, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { stream.CopyTo(temporaryFileStream); } var package = new OptimizedZipPackage(temporaryFile); // Make sure the user can access this package if (Authenticate(context, apiKey, package.Id)) { try { _serverRepository.AddPackage(package); WriteStatus(context, HttpStatusCode.Created, ""); } catch (InvalidOperationException ex) { WriteStatus(context, HttpStatusCode.InternalServerError, ex.Message); } } package = null; try { File.Delete(temporaryFile); } catch (Exception) { WriteStatus(context, HttpStatusCode.InternalServerError, "Could not remove temporary upload file."); } }
public void CreatePackage(HttpContextBase context) { var request = context.Request; // Get the api key from the header string apiKey = request.Headers[ApiKeyHeader]; // Get the package from the request body Stream stream = request.Files.Count > 0 ? request.Files[0].InputStream : request.InputStream; var package = new ZipPackage(stream); // Make sure they can access this package if (Authenticate(context, apiKey, package.Id)) { try { _serverRepository.AddPackage(package); WriteStatus(context, HttpStatusCode.Created, ""); } catch (InvalidOperationException ex) { WriteStatus(context, HttpStatusCode.InternalServerError, ex.Message); } } }
public void CreatePackage(HttpContextBase context) { RouteData routeData = GetRouteData(context); var request = context.Request; // Get the api key from the header string apiKey = request.Headers[ApiKeyHeader]; // Get the package from the request body Stream stream = request.Files.Count > 0 ? request.Files[0].InputStream : request.InputStream; var package = new ZipPackage(stream); // Make sure they can access this package Authenticate(context, apiKey, package.Id, () => _serverRepository.AddPackage(package)); WriteStatus(context, HttpStatusCode.Created, ""); }