Preference.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System;
  2. using System.ComponentModel.DataAnnotations;
  3. using System.ComponentModel.DataAnnotations.Schema;
  4. namespace Jellyfin.Data.Entities
  5. {
  6. public partial class Preference
  7. {
  8. partial void Init();
  9. /// <summary>
  10. /// Default constructor. Protected due to required properties, but present because EF needs it.
  11. /// </summary>
  12. protected Preference()
  13. {
  14. Init();
  15. }
  16. /// <summary>
  17. /// Replaces default constructor, since it's protected. Caller assumes responsibility for setting all required values before saving.
  18. /// </summary>
  19. public static Preference CreatePreferenceUnsafe()
  20. {
  21. return new Preference();
  22. }
  23. /// <summary>
  24. /// Public constructor with required data
  25. /// </summary>
  26. /// <param name="kind"></param>
  27. /// <param name="value"></param>
  28. /// <param name="_user0"></param>
  29. /// <param name="_group1"></param>
  30. public Preference(Enums.PreferenceKind kind, string value, User _user0, Group _group1)
  31. {
  32. this.Kind = kind;
  33. if (string.IsNullOrEmpty(value)) throw new ArgumentNullException(nameof(value));
  34. this.Value = value;
  35. if (_user0 == null) throw new ArgumentNullException(nameof(_user0));
  36. _user0.Preferences.Add(this);
  37. if (_group1 == null) throw new ArgumentNullException(nameof(_group1));
  38. _group1.Preferences.Add(this);
  39. Init();
  40. }
  41. /// <summary>
  42. /// Static create function (for use in LINQ queries, etc.)
  43. /// </summary>
  44. /// <param name="kind"></param>
  45. /// <param name="value"></param>
  46. /// <param name="_user0"></param>
  47. /// <param name="_group1"></param>
  48. public static Preference Create(Enums.PreferenceKind kind, string value, User _user0, Group _group1)
  49. {
  50. return new Preference(kind, value, _user0, _group1);
  51. }
  52. /*************************************************************************
  53. * Properties
  54. *************************************************************************/
  55. /// <summary>
  56. /// Identity, Indexed, Required
  57. /// </summary>
  58. [Key]
  59. [Required]
  60. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  61. public int Id { get; protected set; }
  62. /// <summary>
  63. /// Required
  64. /// </summary>
  65. [Required]
  66. public Enums.PreferenceKind Kind { get; set; }
  67. /// <summary>
  68. /// Required, Max length = 65535
  69. /// </summary>
  70. [Required]
  71. [MaxLength(65535)]
  72. [StringLength(65535)]
  73. public string Value { get; set; }
  74. /// <summary>
  75. /// Required, ConcurrenyToken
  76. /// </summary>
  77. [ConcurrencyCheck]
  78. [Required]
  79. public uint RowVersion { get; set; }
  80. public void OnSavingChanges()
  81. {
  82. RowVersion++;
  83. }
  84. /*************************************************************************
  85. * Navigation properties
  86. *************************************************************************/
  87. }
  88. }