Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
        /// <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);
        }