Normal
You guess correctly. The Aspects property of MediaItem has gone from IDictionary<Guid, MediaItemAspect> to IDictionary<Guid, IList<MediaItemAspect>>You can still access the dictionary but it's not a MediaItemAspect any more so you'd have to work on the list instead using .First() or some other method to get the object you want.Having a [] operator that returned a MediaItemAspect or null meant writing it in a way that it couldn't accidentally be used to get multiple MIAs. What would you do if there was more than one MIA (runtime exception, return null, return the first and hide the others)? The solution was to use SingleMediaItemAspectMetadata as the parameter type.Some of the code is now easier e.g. the Count functions. Some is more difficult e.g. getting episodes for a series is a two level operation (series -> season -> episode).107 to go.
You guess correctly. The Aspects property of MediaItem has gone from IDictionary<Guid, MediaItemAspect> to IDictionary<Guid, IList<MediaItemAspect>>
You can still access the dictionary but it's not a MediaItemAspect any more so you'd have to work on the list instead using .First() or some other method to get the object you want.
Having a [] operator that returned a MediaItemAspect or null meant writing it in a way that it couldn't accidentally be used to get multiple MIAs. What would you do if there was more than one MIA (runtime exception, return null, return the first and hide the others)? The solution was to use SingleMediaItemAspectMetadata as the parameter type.
Some of the code is now easier e.g. the Count functions. Some is more difficult e.g. getting episodes for a series is a two level operation (series -> season -> episode).
107 to go.