Series.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using MediaBrowser.Common.Extensions;
  2. using MediaBrowser.Controller.IO;
  3. using MediaBrowser.Controller.Library;
  4. using MediaBrowser.Controller.Localization;
  5. using MediaBrowser.Model.Entities;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Runtime.Serialization;
  9. namespace MediaBrowser.Controller.Entities.TV
  10. {
  11. /// <summary>
  12. /// Class Series
  13. /// </summary>
  14. public class Series : Folder
  15. {
  16. /// <summary>
  17. /// Gets or sets the status.
  18. /// </summary>
  19. /// <value>The status.</value>
  20. public SeriesStatus? Status { get; set; }
  21. /// <summary>
  22. /// Gets or sets the air days.
  23. /// </summary>
  24. /// <value>The air days.</value>
  25. public List<DayOfWeek> AirDays { get; set; }
  26. /// <summary>
  27. /// Gets or sets the air time.
  28. /// </summary>
  29. /// <value>The air time.</value>
  30. public string AirTime { get; set; }
  31. /// <summary>
  32. /// Series aren't included directly in indices - Their Episodes will roll up to them
  33. /// </summary>
  34. /// <value><c>true</c> if [include in index]; otherwise, <c>false</c>.</value>
  35. [IgnoreDataMember]
  36. public override bool IncludeInIndex
  37. {
  38. get
  39. {
  40. return false;
  41. }
  42. }
  43. /// <summary>
  44. /// Override to use the provider Ids so it will be portable
  45. /// </summary>
  46. /// <value>The user data id.</value>
  47. [IgnoreDataMember]
  48. public override Guid UserDataId
  49. {
  50. get
  51. {
  52. if (_userDataId == Guid.Empty)
  53. {
  54. var baseId = this.GetProviderId(MetadataProviders.Tvdb) ?? this.GetProviderId(MetadataProviders.Tvcom);
  55. _userDataId = baseId != null ? baseId.GetMD5() : Id;
  56. }
  57. return _userDataId;
  58. }
  59. }
  60. // Studio, Genre and Rating will all be the same so makes no sense to index by these
  61. protected override Dictionary<string, Func<User, IEnumerable<BaseItem>>> GetIndexByOptions()
  62. {
  63. return new Dictionary<string, Func<User, IEnumerable<BaseItem>>> {
  64. {LocalizedStrings.Instance.GetString("NoneDispPref"), null},
  65. {LocalizedStrings.Instance.GetString("PerformerDispPref"), GetIndexByPerformer},
  66. {LocalizedStrings.Instance.GetString("DirectorDispPref"), GetIndexByDirector},
  67. {LocalizedStrings.Instance.GetString("YearDispPref"), GetIndexByYear},
  68. };
  69. }
  70. /// <summary>
  71. /// Creates ResolveArgs on demand
  72. /// </summary>
  73. /// <param name="pathInfo">The path info.</param>
  74. /// <returns>ItemResolveArgs.</returns>
  75. protected internal override ItemResolveArgs CreateResolveArgs(WIN32_FIND_DATA? pathInfo = null)
  76. {
  77. var args = base.CreateResolveArgs(pathInfo);
  78. Season.AddMetadataFiles(args);
  79. return args;
  80. }
  81. }
  82. }