public override bool DeleteResource(IStorageProviderSession session, ICloudFileSystemEntry entry) { // build the path for resource String resourcePath = GenericHelper.GetResourcePath(entry); // request the json object via oauth var parameters = new Dictionary <string, string> { { "path", resourcePath }, { "root", GetRootToken(session as DropBoxStorageProviderSession) } }; try { // remove int code; DropBoxRequestParser.RequestResourceByUrl(GetUrlString(DropBoxDeleteItem, session.ServiceConfiguration), parameters, this, session, out code); // remove from parent BaseDirectoryEntry parentDir = entry.Parent as BaseDirectoryEntry; parentDir.RemoveChild(entry as BaseFileEntry); } catch (Exception) { return(false); } return(true); }
/// <summary> /// This method removes a specific resource from a webdav share /// </summary> /// <param name="session"></param> /// <param name="entry"></param> public override Boolean DeleteResource(IStorageProviderSession session, ICloudFileSystemEntry entry) { // get the credentials ICredentials creds = session.SessionToken as ICredentials; // build url String uriString = this.GetResourceUrl(session, entry, null); Uri uri = new Uri(uriString); // create the service DavService svc = new DavService(); // create the webrequest int errorCode; WebException e; svc.PerformSimpleWebCall(uri.ToString(), WebRequestMethodsEx.WebDAV.Delete, creds.GetCredential(null, null), null, out errorCode, out e); if (!HttpUtilityEx.IsSuccessCode(errorCode)) { return(false); } else { // remove from parent BaseDirectoryEntry parentDir = entry.Parent as BaseDirectoryEntry; parentDir.RemoveChild(entry as BaseFileEntry); // go ahead return(true); } }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="objectToRemove"></param> public static void DeleteFileSystemEntry(IStorageProviderSession session, ICloudFileSystemEntry objectToRemove) { // get the parent dir BaseDirectoryEntry parentDir = objectToRemove.Parent as BaseDirectoryEntry; // remove from parent parentDir.RemoveChild(objectToRemove as BaseFileEntry); }
/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="objectToMove"></param> /// <param name="newParent"></param> public static void MoveFileSystemEntry(IStorageProviderSession session, ICloudFileSystemEntry objectToMove, ICloudDirectoryEntry newParent) { // readjust parent BaseDirectoryEntry oldParent = objectToMove.Parent as BaseDirectoryEntry; oldParent.RemoveChild(objectToMove as BaseFileEntry); BaseDirectoryEntry newParentObject = newParent as BaseDirectoryEntry; newParentObject.AddChild(objectToMove as BaseFileEntry); }
public override ICloudFileSystemEntry CreateResource(IStorageProviderSession session, string Name, ICloudDirectoryEntry parent) { // get the parent BaseDirectoryEntry parentDir = parent as BaseDirectoryEntry; // build new folder object var newFolder = new BaseDirectoryEntry(Name, 0, DateTime.Now, this, session); parentDir.AddChild(newFolder); // build the path for resource String resourcePath = GenericHelper.GetResourcePath(newFolder); // build the json parameters var parameters = new Dictionary <string, string> { { "path", resourcePath }, { "root", GetRootToken(session as DropBoxStorageProviderSession) } }; // request the json object via oauth int code; var res = DropBoxRequestParser.RequestResourceByUrl(GetUrlString(DropBoxCreateFolder, session.ServiceConfiguration), parameters, this, session, out code); if (res.Length == 0) { parentDir.RemoveChild(newFolder); return(null); } else { // update the folder object DropBoxRequestParser.UpdateObjectFromJsonString(res, newFolder, this, session); } // go ahead return(newFolder); }
/// <summary> /// This method moves a resource from one webdav location to an other /// </summary> /// <param name="session"></param> /// <param name="fsentry"></param> /// <param name="newParent"></param> /// <returns></returns> public override bool MoveResource(IStorageProviderSession session, ICloudFileSystemEntry fsentry, ICloudDirectoryEntry newParent) { // build the targte url String uriStringTarget = this.GetResourceUrl(session, newParent, null); uriStringTarget = PathHelper.Combine(uriStringTarget, fsentry.Name); if (MoveResource(session, fsentry, uriStringTarget)) { // readjust parent BaseDirectoryEntry oldParent = fsentry.Parent as BaseDirectoryEntry; oldParent.RemoveChild(fsentry as BaseFileEntry); BaseDirectoryEntry newParentObject = newParent as BaseDirectoryEntry; newParentObject.AddChild(fsentry as BaseFileEntry); return(true); } else { return(false); } }
private void CommitUploadOperation(object[] args) { var session = args[0] as IStorageProviderSession; var request = args[1] as WebRequest; var entry = args[2] as BaseFileEntry; var responce = (HttpWebResponse)request.GetResponse(); var stream = responce.GetResponseStream(); var xml = new StreamReader(stream).ReadToEnd(); var uploaded = GoogleDocsXmlParser.ParseEntriesXml(session, xml).First(); BaseDirectoryEntry parent = null; if (entry.Parent != null) { parent = entry.Parent as BaseDirectoryEntry; parent.RemoveChild(entry); //this may be virtual one } //copy uploaded entry's info to old one entry.Name = uploaded.Name; entry.Id = uploaded.Id; entry.Length = uploaded.Length; entry.Modified = uploaded.Modified; entry.SetPropertyValue(GoogleDocsConstants.DownloadUrlProperty, uploaded.GetPropertyValue(GoogleDocsConstants.DownloadUrlProperty)); entry.SetPropertyValue(GoogleDocsConstants.EtagProperty, uploaded.GetPropertyValue(GoogleDocsConstants.EtagProperty)); entry.SetPropertyValue(GoogleDocsConstants.KindProperty, uploaded.GetPropertyValue(GoogleDocsConstants.KindProperty)); entry.SetPropertyValue(GoogleDocsConstants.ResEditMediaProperty, uploaded.GetPropertyValue(GoogleDocsConstants.ResCreateMediaProperty)); if (parent != null) { parent.AddChild(entry); } }