/// <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); }
/// <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); }
/// <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()); }
/// <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); }
/// <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); }