MusicArtist.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using MediaBrowser.Model.Dto;
  2. using MediaBrowser.Model.Entities;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Runtime.Serialization;
  6. namespace MediaBrowser.Controller.Entities.Audio
  7. {
  8. /// <summary>
  9. /// Class MusicArtist
  10. /// </summary>
  11. public class MusicArtist : Folder, IItemByName, IHasMusicGenres, IHasDualAccess
  12. {
  13. [IgnoreDataMember]
  14. public Dictionary<Guid, ItemByNameCounts> UserItemCounts { get; set; }
  15. public bool IsAccessedByName { get; set; }
  16. public override bool IsFolder
  17. {
  18. get
  19. {
  20. return !IsAccessedByName;
  21. }
  22. }
  23. protected override IEnumerable<BaseItem> ActualChildren
  24. {
  25. get
  26. {
  27. if (IsAccessedByName)
  28. {
  29. throw new InvalidOperationException("Artists accessed by name do not have children.");
  30. }
  31. return base.ActualChildren;
  32. }
  33. }
  34. public override string GetClientTypeName()
  35. {
  36. if (IsAccessedByName)
  37. {
  38. //return "Artist";
  39. }
  40. return base.GetClientTypeName();
  41. }
  42. /// <summary>
  43. /// Gets or sets the last fm image URL.
  44. /// </summary>
  45. /// <value>The last fm image URL.</value>
  46. public string LastFmImageUrl { get; set; }
  47. public string LastFmImageSize { get; set; }
  48. public MusicArtist()
  49. {
  50. UserItemCounts = new Dictionary<Guid, ItemByNameCounts>();
  51. }
  52. /// <summary>
  53. /// Gets the user data key.
  54. /// </summary>
  55. /// <returns>System.String.</returns>
  56. public override string GetUserDataKey()
  57. {
  58. return GetUserDataKey(this);
  59. }
  60. /// <summary>
  61. /// Gets the user data key.
  62. /// </summary>
  63. /// <param name="item">The item.</param>
  64. /// <returns>System.String.</returns>
  65. public static string GetUserDataKey(BaseItem item)
  66. {
  67. var id = item.GetProviderId(MetadataProviders.Musicbrainz);
  68. if (!string.IsNullOrEmpty(id))
  69. {
  70. return "Artist-Musicbrainz-" + id;
  71. }
  72. return "Artist-" + item.Name;
  73. }
  74. }
  75. }