2
0

MetadataResult.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #nullable disable
  2. #pragma warning disable CS1591
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Globalization;
  6. using MediaBrowser.Controller.Entities;
  7. using MediaBrowser.Model.Entities;
  8. namespace MediaBrowser.Controller.Providers
  9. {
  10. public class MetadataResult<T>
  11. {
  12. public MetadataResult()
  13. {
  14. Images = new List<LocalImageInfo>();
  15. RemoteImages = new List<(string url, ImageType type)>();
  16. ResultLanguage = "en";
  17. }
  18. public List<LocalImageInfo> Images { get; set; }
  19. public List<(string url, ImageType type)> RemoteImages { get; set; }
  20. public List<UserItemData> UserDataList { get; set; }
  21. public List<PersonInfo> People { get; set; }
  22. public bool HasMetadata { get; set; }
  23. public T Item { get; set; }
  24. public string ResultLanguage { get; set; }
  25. public string Provider { get; set; }
  26. public bool QueriedById { get; set; }
  27. public void AddPerson(PersonInfo p)
  28. {
  29. People ??= new List<PersonInfo>();
  30. PeopleHelper.AddPerson(People, p);
  31. }
  32. /// <summary>
  33. /// Not only does this clear, but initializes the list so that services can differentiate between a null list and zero people.
  34. /// </summary>
  35. public void ResetPeople()
  36. {
  37. if (People == null)
  38. {
  39. People = new List<PersonInfo>();
  40. }
  41. else
  42. {
  43. People.Clear();
  44. }
  45. }
  46. public UserItemData GetOrAddUserData(string userId)
  47. {
  48. UserDataList ??= new List<UserItemData>();
  49. UserItemData userData = null;
  50. foreach (var i in UserDataList)
  51. {
  52. if (string.Equals(userId, i.UserId.ToString("N", CultureInfo.InvariantCulture), StringComparison.OrdinalIgnoreCase))
  53. {
  54. userData = i;
  55. }
  56. }
  57. if (userData == null)
  58. {
  59. userData = new UserItemData()
  60. {
  61. UserId = new Guid(userId)
  62. };
  63. UserDataList.Add(userData);
  64. }
  65. return userData;
  66. }
  67. }
  68. }