protected void UpdateMediaItem <T>(MediaItem mediaItem, MediaItemAspectMetadata.SingleAttributeSpecification attribute, T value) { if (mediaItem == null) { return; } T oldValue; if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, attribute, out oldValue)) { if ((oldValue == null && value == null) || (oldValue != null && oldValue.Equals(value))) { return; } } IContentDirectory cd = ServiceRegistration.Get <IServerConnectionManager>().ContentDirectory; if (cd == null) { return; } var rl = mediaItem.GetResourceLocator(); List <Guid> parentDirectoryIds; if (!MediaItemAspect.TryGetAttribute(mediaItem.Aspects, ProviderResourceAspect.ATTR_PARENT_DIRECTORY_ID, out parentDirectoryIds)) { return; } MediaItemAspect.SetAttribute(mediaItem.Aspects, attribute, value); cd.AddOrUpdateMediaItemAsync(parentDirectoryIds.First(), rl.NativeSystemId, rl.NativeResourcePath, MediaItemAspect.GetAspects(mediaItem.Aspects)); }
public static MediaItemAspectMetadata.AttributeSpecification GetAttributeSpecification(MediaItem mediaItem, IEnumerable <MediaItemAspectMetadata.SingleAttributeSpecification> attributes, out MediaItemAspect aspect) { SingleMediaItemAspect singleAspect = null; MediaItemAspectMetadata.SingleAttributeSpecification attr = attributes.FirstOrDefault(a => MediaItemAspect.TryGetAspect(mediaItem.Aspects, a.ParentMIAM, out singleAspect)); aspect = singleAspect; return(attr); }
public static object GetAttributeValue(this MediaItem mediaItem, MediaItemAspectMetadata.SingleAttributeSpecification attribute) { object value = null; if (!MediaItemAspect.TryGetAttribute(mediaItem.Aspects, attribute, out value)) { return(null); } return(value); }
public void TestSingleMIAM() { SingleTestMIA src = TestCommonUtils.CreateSingleMIA("Single", Cardinality.Inline, true, false); TextWriter writer = new StringWriter(); XmlWriter serialiser = new XmlTextWriter(writer); serialiser.WriteStartElement("Test"); // Wrapper around the albums src.Metadata.Serialize(serialiser); serialiser.WriteEndElement(); Console.WriteLine("XML: {0}", writer); XmlReader reader = XmlReader.Create(new StringReader(writer.ToString())); reader.Read(); // Test tag reader.Read(); // MIAM tag SingleMediaItemAspectMetadata dest = MediaItemAspectMetadata.Deserialize(reader) as SingleMediaItemAspectMetadata; Assert.IsNotNull(dest); Assert.AreEqual(src.Metadata.AspectId, dest.AspectId); Assert.AreEqual(src.Metadata.AttributeSpecifications.Count, dest.AttributeSpecifications.Count); MediaItemAspectMetadata.SingleAttributeSpecification srcSpec = src.Metadata.AttributeSpecifications[src.ATTR_STRING.AttributeName] as MediaItemAspectMetadata.SingleAttributeSpecification; Assert.IsNotNull(srcSpec); MediaItemAspectMetadata.SingleAttributeSpecification destSpec = dest.AttributeSpecifications[src.ATTR_STRING.AttributeName] as MediaItemAspectMetadata.SingleAttributeSpecification; Assert.IsNotNull(destSpec); Assert.AreEqual(srcSpec.AttributeName, destSpec.AttributeName); Assert.AreEqual(srcSpec.AttributeType, destSpec.AttributeType); Assert.AreEqual(srcSpec.Cardinality, destSpec.Cardinality); Assert.AreEqual(srcSpec.IsCollectionAttribute, destSpec.IsCollectionAttribute); Assert.AreEqual(srcSpec.IsIndexed, destSpec.IsIndexed); Assert.AreEqual(srcSpec.MaxNumChars, destSpec.MaxNumChars); }
protected AbstractSortByFirstComparableAttribute(MediaItemAspectMetadata.SingleAttributeSpecification attr) { _attrs = new[] { attr }; }
protected AbstractSortByComparableValueAttribute(string displayName, string groupByDisplayName, MediaItemAspectMetadata.SingleAttributeSpecification sortAttr) : this(displayName, groupByDisplayName, new[] { sortAttr }) { }
public static IEnumerable <T> GetCollectionAttributeValues <T>(this MediaItem mediaItem, MediaItemAspectMetadata.SingleAttributeSpecification attribute) { IEnumerable <T> value = null; if (!MediaItemAspect.TryGetAttribute(mediaItem.Aspects, attribute, out value)) { return(null); } return(value); }