MediaFileStream.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma warning disable CA1711 // Identifiers should not have incorrect suffix
  2. using System;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.ComponentModel.DataAnnotations.Schema;
  5. using Jellyfin.Data.Interfaces;
  6. namespace Jellyfin.Data.Entities.Libraries
  7. {
  8. /// <summary>
  9. /// An entity representing a stream in a media file.
  10. /// </summary>
  11. public class MediaFileStream : IHasConcurrencyToken
  12. {
  13. /// <summary>
  14. /// Initializes a new instance of the <see cref="MediaFileStream"/> class.
  15. /// </summary>
  16. /// <param name="streamNumber">The number of this stream.</param>
  17. /// <param name="mediaFile">The media file.</param>
  18. public MediaFileStream(int streamNumber, MediaFile mediaFile)
  19. {
  20. StreamNumber = streamNumber;
  21. if (mediaFile == null)
  22. {
  23. throw new ArgumentNullException(nameof(mediaFile));
  24. }
  25. mediaFile.MediaFileStreams.Add(this);
  26. }
  27. /// <summary>
  28. /// Initializes a new instance of the <see cref="MediaFileStream"/> class.
  29. /// </summary>
  30. /// <remarks>
  31. /// Default constructor. Protected due to required properties, but present because EF needs it.
  32. /// </remarks>
  33. protected MediaFileStream()
  34. {
  35. }
  36. /// <summary>
  37. /// Gets or sets the id.
  38. /// </summary>
  39. /// <remarks>
  40. /// Identity, Indexed, Required.
  41. /// </remarks>
  42. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  43. public int Id { get; protected set; }
  44. /// <summary>
  45. /// Gets or sets the stream number.
  46. /// </summary>
  47. /// <remarks>
  48. /// Required.
  49. /// </remarks>
  50. public int StreamNumber { get; set; }
  51. /// <inheritdoc />
  52. [ConcurrencyCheck]
  53. public uint RowVersion { get; set; }
  54. /// <inheritdoc />
  55. public void OnSavingChanges()
  56. {
  57. RowVersion++;
  58. }
  59. }
  60. }