示例#1
0
        /// <summary>
        /// Возвращает папку по адресу. Если папки не существует, то она будет создана.
        /// </summary>
        /// <param name="url">Адрес папки.</param>
        /// <returns></returns>
        public WcfFolderInfo EnsureFolder(string url)
        {
            WcfFolderInfo wcfFolder = null;

            try
            {
                this.Authorize();

                if (string.IsNullOrEmpty(url))
                {
                    throw new ArgumentNullException("url");
                }

                this.Logger.WriteFormatMessage("EnsureFolder:Начало получения папки, url: {0}", url);
                IFolder folder = this.Storage.EnsureFolder(url);
                wcfFolder = WcfFolderInfo.FromFolder(folder);

                this.Logger.WriteFormatMessage("EnsureFolder:Окончание получения папки, url: {0}", url);
            }
            catch (Exception ex)
            {
                this.Logger.WriteFormatMessage("EnsureFolder:Ошибка выполенения операции, текст ошибки: {0}", ex);

                throw ex;
            }

            return(wcfFolder);
        }
示例#2
0
        /// <summary>
        /// Возвращает папку по-умолчанию для загрузки файлов.
        /// </summary>
        /// <returns></returns>
        public WcfFolderInfo GetDefaultFolder()
        {
            WcfFolderInfo wcfFolder = null;

            try
            {
                this.Authorize();

                this.Logger.WriteMessage("GetDefaultFolder:Начало получения папки по-умолчанию");
                IFolder folder = this.Storage.DefaultFolder;
                if (folder == null)
                {
                    throw new Exception(string.Format("Не удалось получить папку по-умолчанию"));
                }

                wcfFolder = WcfFolderInfo.FromFolder(folder);
                this.Logger.WriteMessage("GetDefaultFolder:Окончание получения папки по-умолчанию");
            }
            catch (Exception ex)
            {
                this.Logger.WriteFormatMessage("GetDefaultFolder:Ошибка выполенения операции, текст ошибки: {0}", ex);
                throw ex;
            }

            return(wcfFolder);
        }
示例#3
0
        /// <summary>
        /// Возвращает коллекцию папок.
        /// </summary>
        /// <param name="parentFolderUrl">Адрес родительской папки.</param>
        /// <returns></returns>
        public WcfFolderInfo[] GetFolders(string parentFolderUrl = null)
        {
            List <WcfFolderInfo> resultList = new List <WcfFolderInfo>();

            try
            {
                this.Authorize();

                this.Logger.WriteMessage("GetFolders:Начало получения дочерних папок");
                IFolder[] folders = null;
                if (!string.IsNullOrEmpty(parentFolderUrl))
                {
                    IFolder parentFolder = this.Storage.GetFolder(parentFolderUrl);
                    folders = parentFolder.Folders.ToArray();
                }
                else
                {
                    folders = this.Storage.Folders.ToArray();
                }

                if (folders != null)
                {
                    foreach (IFolder folder in folders)
                    {
                        WcfFolderInfo wcfFolder = WcfFolderInfo.FromFolder(folder);
                        resultList.Add(wcfFolder);
                    }
                }

                this.Logger.WriteMessage("GetFolders:Окончание получения дочерних папок");
            }
            catch (Exception ex)
            {
                this.Logger.WriteFormatMessage("GetFolders:Ошибка выполенения операции, текст ошибки: {0}", ex);

                throw ex;
            }

            return(resultList.ToArray());
        }
示例#4
0
        /// <summary>
        /// Возвращает папку по адресу.
        /// </summary>
        /// <param name="url">Адрес папки.</param>
        /// <returns></returns>
        public WcfFolderInfo GetFolder(string url)
        {
            WcfFolderInfo wcfFolder = null;

            try
            {
                this.Authorize();

                if (string.IsNullOrEmpty(url))
                {
                    throw new ArgumentNullException("url");
                }

                this.Logger.WriteFormatMessage("GetFolder:Начало получения папки, url: {0}", url);
                IFolder folder = null;
                if (url.ToLower() == StorageConsts.Folders.DefaultFolderName.ToLower())
                {
                    folder = this.Storage.DefaultFolder;
                }
                else
                {
                    folder = this.Storage.GetFolder(url);
                }
                if (folder != null)
                {
                    wcfFolder = WcfFolderInfo.FromFolder(folder);
                }

                this.Logger.WriteFormatMessage("GetFolder:Окончание получения папки, url: {0}", url);
            }
            catch (Exception ex)
            {
                this.Logger.WriteFormatMessage("GetFolder:Ошибка выполенения операции, текст ошибки: {0}", ex);
                throw ex;
            }

            return(wcfFolder);
        }
示例#5
0
        /// <summary>
        /// Возвращает транспортный объект папки для передачи клиенту.
        /// </summary>
        /// <param name="folder">Папка.</param>
        /// <returns></returns>
        public static WcfFolderInfo FromFolder(IFolder folder)
        {
            if (folder == null)
            {
                throw new ArgumentNullException("folder");
            }

            string parentUrl = null;

            if (folder.ParentFolder != null)
            {
                parentUrl = folder.ParentFolder.Url;
            }

            WcfFolderInfo wcfFolder = new WcfFolderInfo()
            {
                UniqueID        = folder.UniqueID,
                Url             = folder.Url,
                Name            = folder.Name,
                ParentFolderUrl = parentUrl
            };

            return(wcfFolder);
        }