/// <summary>
        /// Возвращает метаданные всех версий файла.
        /// </summary>
        /// <param name="file">Метаданные файла.</param>
        /// <returns>Коллекцию метаданных версий файла.</returns>
        internal FileVersionsCollection GetFileVersions(FileMetadata file)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }

            FileVersionsCollection versions = new FileVersionsCollection(file);

            string query     = String.Format("[FileID] = '{0}'", file.ID);
            string tableName = this.GetTableName(file);

            DBObjectDistributedTable table        = this.MetadataAdapter.TableActivator.GetDistributedTable(this.DBSchemaAdapter, tableName);
            MetadataQueryBuilder     queryBuilder = new MetadataQueryBuilder(table.TablePartition.Table, this.TypeDefinition);

            string resultQuery = @"{SelectQuery} WHERE {Query} ORDER BY [TimeCreated] ASC"
                                 .ReplaceKey("SelectQuery", queryBuilder.SelectQuery)
                                 .ReplaceKey("Query", query);

            DataTable resultTable = this.DataAdapter.GetDataTable(resultQuery);

            if (resultTable != null)
            {
                foreach (DataRow row in resultTable.Rows)
                {
                    FileVersionMetadata metadata = new FileVersionMetadata(row, versions);
                    versions.AddVersion(metadata);
                }
            }

            return(versions);
        }
        /// <summary>
        /// К-тор.
        /// </summary>
        /// <param name="adapter">Коллекция версий файла.</param>
        internal FileVersionMetadata(FileVersionsCollection collection)
        {
            if (collection == null)
            {
                throw new ArgumentNullException("collection");
            }

            this.VersionsCollection = collection;
        }
        /// <summary>
        /// К-тор.
        /// </summary>
        /// <param name="row">Данные.</param>
        /// <param name="collection">Коллекция версий файла.</param>
        internal FileVersionMetadata(DataRow row, FileVersionsCollection collection)
        {
            if (row == null)
            {
                throw new ArgumentNullException("row");
            }

            if (collection == null)
            {
                throw new ArgumentNullException("collection");
            }

            this.MetadataRow        = row;
            this.VersionsCollection = collection;
        }
Beispiel #4
0
        public ICollection <IBlobFileVersionMetadata> GetVersions(IBlobFileMetadata fileMetadata)
        {
            if (fileMetadata == null)
            {
                throw new ArgumentNullException("fileMetadata");
            }

            this.Logger.WriteFormatMessage("GetVersions: Начало. fileUniqueID='{0}' folderUrl='{1}'",
                                           fileMetadata.UniqueID, fileMetadata.FolderMetadata.Url);

            FileVersionsCollection collection = ((FileMetadata)fileMetadata).Versions;

            this.Logger.WriteMessage("GetVersions: Конец.");

            return(collection);
        }