/// <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)); }
/// <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(); } }
/// <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); }
/// <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); }
/// <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); }
public override void SaveItemMetadata(ItemMetadata item) { ItemMetadataAdaptor entityItemMetaData = ItemMetadataAdaptor.CreateInstance(item); entityItemMetaData.Save(); }