Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        /// <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);
            }
        }