public static IEnumerable <MetaKey> GetByMedia(this MetaMediaType media) { HashSet <MetaKey> keys = new HashSet <MetaKey>(); keys.Add(MetaKey.MetaType); keys.Add(MetaKey.OriginalName); keys.Add(MetaKey.FileName); keys.Add(MetaKey.Size); keys.Add(MetaKey.Timestamp); keys.Add(MetaKey.DateCreated); keys.Add(MetaKey.DateModified); keys.Add(MetaKey.Comment); switch (media) { case MetaMediaType.Image: keys.Add(MetaKey.Resolution); keys.Add(MetaKey.Width); keys.Add(MetaKey.Height); keys.Add(MetaKey.Camera); keys.Add(MetaKey.Tags); break; case MetaMediaType.Audio: keys.Add(MetaKey.Title); keys.Add(MetaKey.Artist); keys.Add(MetaKey.Album); keys.Add(MetaKey.Year); keys.Add(MetaKey.Track); keys.Add(MetaKey.Genre); break; case MetaMediaType.Video: break; default: break; } return(keys); }
private static IEnumerable <GroupType> GetMediaGroupTypes(MetaMediaType type) { HashSet <GroupType> types = new HashSet <GroupType>(); types.Add(GroupType.Index); foreach (MetaKey key in type.GetByMedia()) { switch (key) { case MetaKey.Timestamp: types.Add(GroupType.Year); types.Add(GroupType.MonthName); types.Add(GroupType.MonthNumber); types.Add(GroupType.DayName); types.Add(GroupType.DayNumber); break; case MetaKey.OriginalName: types.Add(GroupType.OriginalName); break; case MetaKey.FileName: types.Add(GroupType.FileName); types.Add(GroupType.FileExtension); types.Add(GroupType.FileNameWithExtension); break; case MetaKey.Tags: types.Add(GroupType.Tags); break; case MetaKey.Camera: types.Add(GroupType.Camera); break; case MetaKey.Width: types.Add(GroupType.WidthPx); break; case MetaKey.Height: types.Add(GroupType.HeightPx); break; case MetaKey.Title: types.Add(GroupType.Title); break; case MetaKey.Artist: types.Add(GroupType.Artist); break; case MetaKey.Album: types.Add(GroupType.Album); break; case MetaKey.Track: types.Add(GroupType.Track); break; } } return(types); }