/// <summary>
        /// Retrieves information about structure of the folder by its ID
        /// </summary>
        /// <param name="folderID">Folder ID</param>
        /// <param name="options">Retrieving options</param>
        /// <returns>Instance of <see cref="Folder"/> type which represents user's folder</returns>
        public Folder GetFolderStructure(long folderID, RetrieveFolderStructureOptions options)
        {
            Folder folder;

            GetAccountTreeStatus status = new GetAccountTreeStatus();

            folder = null;

            try
            {
                status = _manager.GetFolderStructure(folderID, options, out folder);
            }
            catch (InvalidOperationException e)
            {
            }

            if (status != GetAccountTreeStatus.Successful)
            {
                throw new ApplicationException(string.Format("Failed to retrieve folder tree. FolderID=[{0}], OperationStatus={1}", folderID, status));
            }

            return folder;
        }
Beispiel #2
0
 /// <summary>
 /// Get files information for a given folder asynchronously
 /// </summary>
 /// <param name="folderID"></param>
 /// <param name="operationFinished"></param>
 /// <param name="options"></param>
 public void GetFilesAsync(long folderID, OperationFinished<GetFolderStructureResponse> operationFinished, RetrieveFolderStructureOptions options = RetrieveFolderStructureOptions.OneLevel)
 {
     _manager.GetFolderStructure(folderID, options, operationFinished);
 }
Beispiel #3
0
        /// <summary>
        /// Gets the files informqtion for a given folder. Synchronous call
        /// </summary>
        /// <param name="folderID"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public Folder GetFiles(long folderID, RetrieveFolderStructureOptions options = RetrieveFolderStructureOptions.OneLevel)
        {
            Folder folder;
            _manager.GetFolderStructure(folderID, options, out folder);

            return folder;
        }
 /// <summary>
 /// Checks if <paramref name="folderStructureOptions"/> contains <paramref name="options"/>
 /// </summary>
 /// <param name="folderStructureOptions">Set of <see cref="RetrieveFolderStructureOptions"/> flags</param>
 /// <param name="options">Single folder structure retrieve option</param>
 /// <returns>True if set of flags <paramref name="folderStructureOptions"/> contains <paramref name="options"/></returns>
 public static bool Contains(this RetrieveFolderStructureOptions folderStructureOptions, RetrieveFolderStructureOptions options)
 {
     return (folderStructureOptions & options) == options;
 }
Beispiel #5
0
 public void GetFolderStructure(long folderID, RetrieveFolderStructureOptions retrieveOptions, OperationFinished<GetFolderStructureResponse> getFolderStructureCompleted, object userState);
Beispiel #6
0
 public GetAccountTreeStatus GetFolderStructure(long folderID, RetrieveFolderStructureOptions retrieveOptions, out Folder folder);
Beispiel #7
0
 public void GetRootFolderStructure(RetrieveFolderStructureOptions retrieveOptions, OperationFinished<GetFolderStructureResponse> getFolderStructureCompleted);
Beispiel #8
0
 public GetAccountTreeStatus GetRootFolderStructure(RetrieveFolderStructureOptions retrieveOptions, out Folder folder);
 /// <summary>
 /// Asynchronously retrieves a user's root folder structure
 /// </summary>
 /// <param name="retrieveOptions">Retrieve options</param>
 /// <param name="getFolderStructureCompleted">Callback method which will be executed after operation completes</param>
 /// <param name="userState">A user-defined object containing state information. 
 /// This object is passed to the <paramref name="getFolderStructureCompleted"/> delegate as a part of response when the operation is completed</param>
 /// <exception cref="ArgumentException">Thrown if <paramref name="getFolderStructureCompleted"/> is null</exception>
 public void GetRootFolderStructure(
     RetrieveFolderStructureOptions retrieveOptions,
     OperationFinished<GetFolderStructureResponse> getFolderStructureCompleted,
     object userState)
 {
     GetFolderStructure(0, retrieveOptions, getFolderStructureCompleted, userState);
 }
 /// <summary>
 /// Retrieves a user's root folder structure
 /// </summary>
 /// <param name="retrieveOptions">Retrieve options</param>
 /// <returns>Operation status</returns>
 public GetFolderStructureResponse GetRootFolderStructure(RetrieveFolderStructureOptions retrieveOptions)
 {
     return GetFolderStructure(0, retrieveOptions);
 }
        /// <summary>
        /// Asynchronously retrieves a user's folder structure by ID
        /// </summary>
        /// <param name="folderID">ID of the folder to retrieve</param>
        /// <param name="retrieveOptions">Retrieve options</param>
        /// <param name="getFolderStructureCompleted">Callback method which will be executed after operation completes</param>
        /// <param name="userState">A user-defined object containing state information. 
        /// This object is passed to the <paramref name="getFolderStructureCompleted"/> delegate as a part of response when the operation is completed</param>
        /// <exception cref="ArgumentException">Thrown if <paramref name="getFolderStructureCompleted"/> is null</exception>
        public void GetFolderStructure(
            long folderID,
            RetrieveFolderStructureOptions retrieveOptions,
            OperationFinished<GetFolderStructureResponse> getFolderStructureCompleted,
            object userState)
        {
            ThrowIfParameterIsNull(getFolderStructureCompleted, "getFolderStructureCompleted");

            object[] state = new object[3];

            state[0] = getFolderStructureCompleted;
            state[1] = retrieveOptions;
            state[2] = userState;

            _service.get_account_treeCompleted += GetFolderStructureFinished;

            _service.get_account_treeAsync(_apiKey, _token, folderID, retrieveOptions.ToStringArray(), state);
        }
 /// <summary>
 /// Asynchronously retrieves a user's folder structure by ID
 /// </summary>
 /// <param name="folderID">ID of the folder to retrieve</param>
 /// <param name="retrieveOptions">Retrieve options</param>
 /// <param name="getFolderStructureCompleted">Callback method which will be executed after operation completes</param>
 /// <exception cref="ArgumentException">Thrown if <paramref name="getFolderStructureCompleted"/> is null</exception>
 public void GetFolderStructure(
     long folderID,
     RetrieveFolderStructureOptions retrieveOptions,
     OperationFinished<GetFolderStructureResponse> getFolderStructureCompleted)
 {
     GetFolderStructure(folderID, retrieveOptions, getFolderStructureCompleted, null);
 }
        public GetAccountTreeStatus GetFolderStructure(
            long folderID,
            RetrieveFolderStructureOptions retrieveOptions,
            out Folder folder)
        {
            folder = null;

            byte[] folderInfoXml;

            string result = _service.get_account_tree(_apiKey, _token, folderID, retrieveOptions.ToStringArray(), out folderInfoXml);
            GetAccountTreeStatus status = StatusMessageParser.ParseGetAccountTreeStatus(result);

            switch (status)
            {
                case GetAccountTreeStatus.Successful:
                    string folderInfo = null;

                    if (!retrieveOptions.Contains(RetrieveFolderStructureOptions.NoZip))
                    {
                        folderInfoXml = Unzip(folderInfoXml);
                    }

                    if (folderInfoXml != null)
                    {
                        folderInfo = Encoding.ASCII.GetString(folderInfoXml);
                    }

                    folder = ParseFolderStructureXmlMessage(folderInfo);
                    break;
            }

            return status;
        }