public async Task PushPackage(string apiKey, string filePath, IPackageMetadata package, bool pushAsUnlisted, bool appendV2ApiToUrl) { string requestUri = CreateRequestUri(appendV2ApiToUrl); HttpWebRequest httpRequest = WebRequest.CreateHttp(requestUri); httpRequest.Method = "PUT"; httpRequest.AllowAutoRedirect = true; httpRequest.KeepAlive = false; httpRequest.Headers.Add(ApiKeyHeader, apiKey); httpRequest.UserAgent = _userAgent; httpRequest.UseDefaultCredentials = true; httpRequest.PreAuthenticate = true; var multipartRequest = new MultipartWebRequest(); multipartRequest.AddFile(new FileInfo(filePath), package.ToString()); // sending package data asynchronously await multipartRequest.CreateMultipartRequest(httpRequest); // waiting for response asynchronously await EnsureSuccessfulResponse(httpRequest, HttpStatusCode.Created); if (pushAsUnlisted) { await DeletePackageFromServer(apiKey, package.Id, package.Version.ToString(), appendV2ApiToUrl); } }
public async Task PushPackage(string apiKey, string filePath, IPackageMetadata package, bool pushAsUnlisted) { string requestUri = EnsureTrailingSlash(_source) + ServiceEndpoint; HttpWebRequest httpRequest = WebRequest.CreateHttp(requestUri); httpRequest.Method = "PUT"; httpRequest.AllowAutoRedirect = true; httpRequest.AllowWriteStreamBuffering = false; httpRequest.KeepAlive = false; httpRequest.Headers.Add(ApiKeyHeader, apiKey); httpRequest.UserAgent = _userAgent; var multipartRequest = new MultipartWebRequest(); multipartRequest.AddFile(new FileInfo(filePath), package.ToString()); // sending package data asynchronously await multipartRequest.CreateMultipartRequest(httpRequest); // waiting for response asynchronously await EnsureSuccessfulResponse(httpRequest, HttpStatusCode.Created); if (pushAsUnlisted) { await DeletePackageFromServer(apiKey, package.Id, package.Version.ToString()); } }