public override IResumableUploadSession CreateUploadSession(IStorageProviderSession session, ICloudFileSystemEntry fileSystemEntry, long bytesToTransfer) { WebRequest request; if (GoogleDocsResourceHelper.IsResorceId(fileSystemEntry.Id)) { //request for update request = CreateWebRequest(session, fileSystemEntry.GetPropertyValue(GoogleDocsConstants.ResEditMediaProperty), "PUT", null, true); request.Headers.Add("If-Match", "*"); } else { //request for create request = CreateWebRequest(session, fileSystemEntry.Parent.GetPropertyValue(GoogleDocsConstants.ResCreateMediaProperty) + "?convert=false", "POST", null, true); } if (GoogleDocsResourceHelper.OfGoogleDocsKind(fileSystemEntry)) { ((BaseFileEntry)fileSystemEntry).Name = Path.GetFileNameWithoutExtension(fileSystemEntry.Name); } GoogleDocsXmlParser.WriteAtom(request, GoogleDocsXmlParser.EntryElement(GoogleDocsXmlParser.TitleElement(fileSystemEntry.Name))); request.Headers.Add("X-Upload-Content-Type", Common.Net.MimeMapping.GetMimeMapping(fileSystemEntry.Name)); request.Headers.Add("X-Upload-Content-Length", bytesToTransfer.ToString(CultureInfo.InvariantCulture)); var response = request.GetResponse(); var uploadSession = new ResumableUploadSession(fileSystemEntry, bytesToTransfer); uploadSession["Location"] = response.Headers["Location"]; uploadSession.Status = ResumableUploadSessionStatus.Started; return(uploadSession); }
public override IResumableUploadSession CreateUploadSession(IStorageProviderSession session, ICloudFileSystemEntry fileSystemEntry, long bytesToTransfer) { WebRequest request; if (GoogleDocsResourceHelper.IsResorceId(fileSystemEntry.Id)) { //request for update request = CreateWebRequest(session, fileSystemEntry.GetPropertyValue(GoogleDocsConstants.ResEditMediaProperty), "PUT", null, true); request.Headers.Add("If-Match", "*"); } else { //request for create request = CreateWebRequest(session, fileSystemEntry.Parent.GetPropertyValue(GoogleDocsConstants.ResCreateMediaProperty) + "?convert=false", "POST", null, true); } if (GoogleDocsResourceHelper.OfGoogleDocsKind(fileSystemEntry)) { ((BaseFileEntry)fileSystemEntry).Name = Path.GetFileNameWithoutExtension(fileSystemEntry.Name); } GoogleDocsXmlParser.WriteAtom(request, GoogleDocsXmlParser.EntryElement(GoogleDocsXmlParser.TitleElement(fileSystemEntry.Name))); request.Headers.Add("X-Upload-Content-Type", Common.Net.MimeMapping.GetMimeMapping(fileSystemEntry.Name)); request.Headers.Add("X-Upload-Content-Length", bytesToTransfer.ToString(CultureInfo.InvariantCulture)); var response = request.GetResponse(); var uploadSession = new ResumableUploadSession(fileSystemEntry, bytesToTransfer); uploadSession["Location"] = response.Headers["Location"]; uploadSession.Status = ResumableUploadSessionStatus.Started; return uploadSession; }