Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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 })
 {
 }
Ejemplo n.º 7
0
        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);
        }