123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- using MediaBrowser.Controller.Entities;
- using MediaBrowser.Controller.Entities.Audio;
- using MediaBrowser.Controller.Entities.Movies;
- using MediaBrowser.Controller.Entities.TV;
- using MediaBrowser.Model.Dto;
- using System;
- using System.Collections.Generic;
- namespace MediaBrowser.Server.Implementations.Library.Validators
- {
- /// <summary>
- /// Class CountHelpers
- /// </summary>
- internal static class CountHelpers
- {
- /// <summary>
- /// Adds to dictionary.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="counts">The counts.</param>
- internal static void AddToDictionary(BaseItem item, Dictionary<CountType, int> counts)
- {
- if (item is Movie)
- {
- IncrementCount(counts, CountType.Movie);
- }
- else if (item is Trailer)
- {
- IncrementCount(counts, CountType.Trailer);
- }
- else if (item is Series)
- {
- IncrementCount(counts, CountType.Series);
- }
- else if (item is Game)
- {
- IncrementCount(counts, CountType.Game);
- }
- else if (item is Audio)
- {
- IncrementCount(counts, CountType.Song);
- }
- else if (item is MusicAlbum)
- {
- IncrementCount(counts, CountType.MusicAlbum);
- }
- else if (item is Episode)
- {
- IncrementCount(counts, CountType.Episode);
- }
- else if (item is MusicVideo)
- {
- IncrementCount(counts, CountType.MusicVideo);
- }
- else if (item is AdultVideo)
- {
- IncrementCount(counts, CountType.AdultVideo);
- }
- IncrementCount(counts, CountType.Total);
- }
- /// <summary>
- /// Increments the count.
- /// </summary>
- /// <param name="counts">The counts.</param>
- /// <param name="key">The key.</param>
- internal static void IncrementCount(Dictionary<CountType, int> counts, CountType key)
- {
- int count;
- if (counts.TryGetValue(key, out count))
- {
- count++;
- counts[key] = count;
- }
- else
- {
- counts.Add(key, 1);
- }
- }
- /// <summary>
- /// Gets the counts.
- /// </summary>
- /// <param name="counts">The counts.</param>
- /// <returns>ItemByNameCounts.</returns>
- internal static ItemByNameCounts GetCounts(Dictionary<CountType, int> counts)
- {
- return new ItemByNameCounts
- {
- AdultVideoCount = GetCount(counts, CountType.AdultVideo),
- AlbumCount = GetCount(counts, CountType.MusicAlbum),
- EpisodeCount = GetCount(counts, CountType.Episode),
- GameCount = GetCount(counts, CountType.Game),
- MovieCount = GetCount(counts, CountType.Movie),
- MusicVideoCount = GetCount(counts, CountType.MusicVideo),
- SeriesCount = GetCount(counts, CountType.Series),
- SongCount = GetCount(counts, CountType.Song),
- TrailerCount = GetCount(counts, CountType.Trailer),
- TotalCount = GetCount(counts, CountType.Total)
- };
- }
- /// <summary>
- /// Gets the count.
- /// </summary>
- /// <param name="counts">The counts.</param>
- /// <param name="key">The key.</param>
- /// <returns>System.Int32.</returns>
- internal static int GetCount(Dictionary<CountType, int> counts, CountType key)
- {
- int count;
- if (counts.TryGetValue(key, out count))
- {
- return count;
- }
- return 0;
- }
- /// <summary>
- /// Sets the item counts.
- /// </summary>
- /// <param name="userId">The user id.</param>
- /// <param name="media">The media.</param>
- /// <param name="names">The names.</param>
- /// <param name="masterDictionary">The master dictionary.</param>
- internal static void SetItemCounts(Guid userId, BaseItem media, IEnumerable<string> names, Dictionary<string, Dictionary<Guid, Dictionary<CountType, int>>> masterDictionary)
- {
- foreach (var name in names)
- {
- Dictionary<Guid, Dictionary<CountType, int>> libraryCounts;
- if (!masterDictionary.TryGetValue(name, out libraryCounts))
- {
- libraryCounts = new Dictionary<Guid, Dictionary<CountType, int>>();
- masterDictionary.Add(name, libraryCounts);
- }
- var userLibId = userId/* ?? Guid.Empty*/;
- Dictionary<CountType, int> userDictionary;
- if (!libraryCounts.TryGetValue(userLibId, out userDictionary))
- {
- userDictionary = new Dictionary<CountType, int>();
- libraryCounts.Add(userLibId, userDictionary);
- }
- AddToDictionary(media, userDictionary);
- }
- }
- }
- internal enum CountType
- {
- AdultVideo,
- MusicAlbum,
- Episode,
- Game,
- Movie,
- MusicVideo,
- Series,
- Song,
- Trailer,
- Total
- }
- }
|