コード例 #1
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
        /// <summary>
        /// Возвращает список записей метаданных элемента, имеющих указанные значения для набора индексированных полей.
        /// </summary>
        /// <param name="fieldName">Name of the field.</param>
        /// <param name="fieldValue">The field value.</param>
        /// <returns></returns>
        public override IEnumerable <ItemMetadata> FindItemMetadataByIndexedField(string fieldName, object fieldValue)
        {
            if (fieldName == null || fieldValue == null)
            {
                throw new ArgumentNullException("fieldName or fieldValue");
            }
            if (fieldName.Length == 0)
            {
                throw new ArgumentException("fieldName");
            }

            return(ItemMetadataAdaptor.FindMetadataItemByCustomField(fieldName, fieldValue));
        }
コード例 #2
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
 /// <summary>
 /// Removes the item metadata.
 /// </summary>
 /// <param name="globalIds">The global ids.</param>
 public override void RemoveItemMetadata(IEnumerable <SyncId> globalIds)
 {
     foreach (SyncId syncId in globalIds)
     {
         ItemMetadataAdaptor entityItemMetadata = Replica.FindItemMetadataById(syncId);
         if (entityItemMetadata == null)
         {
             throw new Exception("item not found");
         }
         Replica.ForgottenKnowledge.ForgetTo(Replica.CurrentKnowledge, entityItemMetadata.ChangeVersion);
         entityItemMetadata.Delete();
     }
 }
コード例 #3
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
        /// <summary>
        /// Возвращает метаданные элемента, имеющего указанный глобальный идентификатор элемента.
        /// </summary>
        /// <param name="globalId">The global id.</param>
        /// <returns></returns>
        public override ItemMetadata FindItemMetadataById(SyncId globalId)
        {
            if (globalId == null)
            {
                throw new ArgumentNullException("globalId");
            }
            if (globalId.IsVariableLength != IdFormats.ItemIdFormat.IsVariableLength ||
                globalId.RawId.Length != IdFormats.ItemIdFormat.Length)
            {
                throw new SyncIdFormatMismatchException("globalId");
            }

            ItemMetadataAdaptor retVal = Replica.FindItemMetadataById(globalId);

            return(retVal);
        }
コード例 #4
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
        /// <summary>
        /// Создает новый объект метаданных элемента, который может быть использован для добавления записи метаданных нового элемента в хранилище метаданных.
        /// </summary>
        /// <param name="globalId">The global id.</param>
        /// <param name="creationVersion">The creation version.</param>
        /// <returns></returns>
        public override ItemMetadata CreateItemMetadata(SyncId globalId, SyncVersion creationVersion)
        {
            if (globalId == null || creationVersion == null)
            {
                throw new ArgumentNullException();
            }
            if (globalId.IsVariableLength != IdFormats.ItemIdFormat.IsVariableLength ||
                globalId.RawId.Length != IdFormats.ItemIdFormat.Length)
            {
                throw new SyncIdFormatMismatchException("globalId");
            }

            ItemMetadataAdaptor retVal = ItemMetadataAdaptor.CreateInstance(globalId, ReplicaId);

            retVal.CreationVersion = creationVersion;
            retVal.ChangeVersion   = creationVersion;
            return(retVal);
        }
コード例 #5
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
        /// <summary>
        /// Возвращает уникальную запись метаданных элемента, имеющую указанное значение индексированного поля.
        /// </summary>
        /// <param name="fieldName">Name of the field.</param>
        /// <param name="fieldValue">The field value.</param>
        /// <returns></returns>
        public override ItemMetadata FindItemMetadataByUniqueIndexedField(string fieldName, object fieldValue)
        {
            if (fieldName == null || fieldValue == null)
            {
                throw new ArgumentNullException("fieldName or fieldValue");
            }
            if (fieldName.Length == 0)
            {
                throw new ArgumentException("fieldName");
            }
            ItemMetadata retVal = null;

            foreach (ItemMetadata item in ItemMetadataAdaptor.FindMetadataItemByCustomField(fieldName, fieldValue))
            {
                retVal = item;
                break;
            }
            return(retVal);
        }
コード例 #6
0
ファイル: SyncReplicaMetadata.cs プロジェクト: alex765022/IBN
        public override void SaveItemMetadata(ItemMetadata item)
        {
            ItemMetadataAdaptor entityItemMetaData = ItemMetadataAdaptor.CreateInstance(item);

            entityItemMetaData.Save();
        }