| 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, List<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    }}
 |