/// <summary> /// Возвращает коллекию версий файлов. /// </summary> /// <param name="folderUrl">Адрес папки.</param> /// <param name="fileUniqueID">Уникальный идентификатор файла.</param> /// <returns></returns> public WcfFileVersionInfo[] GetFileVersions(string folderUrl, Guid fileUniqueID) { List <WcfFileVersionInfo> versionsInfo = new List <WcfFileVersionInfo>(); try { this.Authorize(); if (string.IsNullOrEmpty(folderUrl)) { throw new ArgumentNullException("folderUrl"); } if (fileUniqueID == Guid.Empty) { throw new ArgumentNullException("fileUniqueID"); } this.Logger.WriteFormatMessage("GetFileVersions:Начало получения версий файла, folderUrl: {0}, fileUniqueID: {1}", folderUrl, fileUniqueID); using (IFile file = this.Storage.GetFile(folderUrl, fileUniqueID)) { if (file.Versions != null) { foreach (IFileVersion version in file.Versions) { using (version) { WcfFileVersionInfo versionInfo = WcfFileVersionInfo.FromFileVersion(version); versionsInfo.Add(versionInfo); } } } } this.Logger.WriteFormatMessage("GetFileVersions:Начало получения версий файла, folderUrl: {0}, fileUniqueID: {1}", folderUrl, fileUniqueID); } catch (Exception ex) { this.Logger.WriteFormatMessage("GetFileVersions:Ошибка выполенения операции, текст ошибки: {0}", ex); throw ex; } return(versionsInfo.ToArray()); }
/// <summary> /// Возвращает транспортный объект файла для передачи клиенту. /// </summary> /// <param name="file">Файл.</param> /// <param name="loadOptions">Опции загрузки.</param> /// <returns></returns> public static WcfFileVersionInfo FromFileVersion(IFileVersion fileVersion, GetFileOptions loadOptions = null) { if (fileVersion == null) { throw new ArgumentNullException("fileVersion"); } WcfFileVersionInfo wcfFile = new WcfFileVersionInfo() { UniqueID = fileVersion.UniqueID, Name = fileVersion.Name, TimeCreated = fileVersion.TimeCreated, Size = fileVersion.Size, CreatedStorageID = fileVersion.CreatedStorageID }; if (loadOptions != null && loadOptions.LoadContent) { wcfFile.Content = fileVersion.Content; } return(wcfFile); }