public fileUploadType InitiateFileUpload(PublishWorkbookRequest publishRequest) { var uri = Endpoints.GetFileUploadUri(baseUri, publishRequest.SiteId); ApiRequest request = new ApiRequest(uri, HttpMethod.Post, GetAuthToken(), headers: null, contentType: null, body: null, timeoutSeconds: publishRequest.PublishingTimeoutSeconds); var errorMessage = String.Format("Failed to retrieve session id for new upload to site '{0}'", siteName); tsResponse response = request.IssueRequest(errorMessage); // Extract site ID. fileUploadType uploadSession = response.GetFileUpload(); return(uploadSession); }
public fileUploadType AppendToFileUpload(PublishWorkbookRequest publishRequest, fileUploadType fileUploadSession, FileStream fileStream) { var uri = Endpoints.GetFileUploadUri(baseUri, publishRequest.SiteId, fileUploadSession.uploadSessionId); var boundaryString = Guid.NewGuid().ToString().Replace("-", ""); string contentType = String.Format("multipart/mixed; boundary={0}", boundaryString); byte[] requestBody = PublishRequestBuilder.BuildMultiPartAppendBody(publishRequest.FilePath, boundaryString, fileStream); var errorMessage = String.Format("Failed to append file part for upload to site '{0}' with upload session id '{1}'", siteName, fileUploadSession.uploadSessionId); ApiRequest request = new ApiRequest(uri, HttpMethod.Put, GetAuthToken(), headers: null, contentType: contentType, body: requestBody, timeoutSeconds: publishRequest.PublishingTimeoutSeconds); tsResponse response = request.IssueRequest(errorMessage); return(response.GetFileUpload()); }