MetadataStatus.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using MediaBrowser.Common.Extensions;
  5. namespace MediaBrowser.Controller.Providers
  6. {
  7. public class MetadataStatus
  8. {
  9. /// <summary>
  10. /// Gets or sets the item identifier.
  11. /// </summary>
  12. /// <value>The item identifier.</value>
  13. public Guid ItemId { get; set; }
  14. /// <summary>
  15. /// Gets or sets the date last metadata refresh.
  16. /// </summary>
  17. /// <value>The date last metadata refresh.</value>
  18. public DateTime? DateLastMetadataRefresh { get; set; }
  19. /// <summary>
  20. /// Gets or sets the date last images refresh.
  21. /// </summary>
  22. /// <value>The date last images refresh.</value>
  23. public DateTime? DateLastImagesRefresh { get; set; }
  24. /// <summary>
  25. /// Gets or sets the last result.
  26. /// </summary>
  27. /// <value>The last result.</value>
  28. public ProviderRefreshStatus LastStatus { get; set; }
  29. /// <summary>
  30. /// Gets or sets the last result error message.
  31. /// </summary>
  32. /// <value>The last result error message.</value>
  33. public string LastErrorMessage { get; set; }
  34. /// <summary>
  35. /// Gets or sets the providers refreshed.
  36. /// </summary>
  37. /// <value>The providers refreshed.</value>
  38. public List<Guid> MetadataProvidersRefreshed { get; set; }
  39. public List<Guid> ImageProvidersRefreshed { get; set; }
  40. public void AddStatus(ProviderRefreshStatus status, string errorMessage)
  41. {
  42. if (LastStatus != status)
  43. {
  44. IsDirty = true;
  45. }
  46. if (string.IsNullOrEmpty(LastErrorMessage))
  47. {
  48. LastErrorMessage = errorMessage;
  49. }
  50. if (LastStatus == ProviderRefreshStatus.Success)
  51. {
  52. LastStatus = status;
  53. }
  54. }
  55. public MetadataStatus()
  56. {
  57. LastStatus = ProviderRefreshStatus.Success;
  58. MetadataProvidersRefreshed = new List<Guid>();
  59. ImageProvidersRefreshed = new List<Guid>();
  60. }
  61. public bool IsDirty { get; private set; }
  62. public void SetDateLastMetadataRefresh(DateTime date)
  63. {
  64. if (date != (DateLastMetadataRefresh ?? DateTime.MinValue))
  65. {
  66. IsDirty = true;
  67. }
  68. DateLastMetadataRefresh = date;
  69. }
  70. public void SetDateLastImagesRefresh(DateTime date)
  71. {
  72. if (date != (DateLastImagesRefresh ?? DateTime.MinValue))
  73. {
  74. IsDirty = true;
  75. }
  76. DateLastImagesRefresh = date;
  77. }
  78. public void AddImageProvidersRefreshed(List<Guid> providerIds)
  79. {
  80. var count = ImageProvidersRefreshed.Count;
  81. providerIds.AddRange(ImageProvidersRefreshed);
  82. ImageProvidersRefreshed = providerIds.Distinct().ToList();
  83. if (ImageProvidersRefreshed.Count != count)
  84. {
  85. IsDirty = true;
  86. }
  87. }
  88. public void AddMetadataProvidersRefreshed(List<Guid> providerIds)
  89. {
  90. var count = MetadataProvidersRefreshed.Count;
  91. providerIds.AddRange(MetadataProvidersRefreshed);
  92. MetadataProvidersRefreshed = providerIds.Distinct().ToList();
  93. if (MetadataProvidersRefreshed.Count != count)
  94. {
  95. IsDirty = true;
  96. }
  97. }
  98. }
  99. }