aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data/Entities/Libraries/Track.cs
diff options
context:
space:
mode:
authorPatrick Barron <barronpm@gmail.com>2020-08-30 18:50:54 -0400
committerPatrick Barron <barronpm@gmail.com>2020-08-30 18:51:31 -0400
commitacb213e4b8edf1c55f615fa8d0079f0fb7fdea68 (patch)
tree7ce91e5269da6847b04631071e6f8a1a3355c56d /Jellyfin.Data/Entities/Libraries/Track.cs
parent414bedbde4b6c522d46ed7448eb9f7c97aeda4b4 (diff)
First pass at cleaning entity classes.
- Documents all library entities - Fixes styling warnings for library entities - Updates library entities to inherit from interfaces - Makes library entites no longer partial.
Diffstat (limited to 'Jellyfin.Data/Entities/Libraries/Track.cs')
-rw-r--r--Jellyfin.Data/Entities/Libraries/Track.cs116
1 files changed, 24 insertions, 92 deletions
diff --git a/Jellyfin.Data/Entities/Libraries/Track.cs b/Jellyfin.Data/Entities/Libraries/Track.cs
index cdcc22d71a..09ce82a9b4 100644
--- a/Jellyfin.Data/Entities/Libraries/Track.cs
+++ b/Jellyfin.Data/Entities/Libraries/Track.cs
@@ -1,120 +1,52 @@
-#pragma warning disable CS1591
-
using System;
using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations.Schema;
+using Jellyfin.Data.Interfaces;
namespace Jellyfin.Data.Entities.Libraries
{
- public partial class Track : LibraryItem
+ /// <summary>
+ /// An entity representing a track.
+ /// </summary>
+ public class Track : LibraryItem, IHasReleases
{
- partial void Init();
-
/// <summary>
- /// Default constructor. Protected due to required properties, but present because EF needs it.
+ /// Initializes a new instance of the <see cref="Track"/> class.
/// </summary>
- protected Track()
+ /// <param name="album">The album.</param>
+ public Track(MusicAlbum album)
{
- // NOTE: This class has one-to-one associations with LibraryRoot, LibraryItem and CollectionItem.
- // One-to-one associations are not validated in constructors since this causes a scenario where each one must be constructed before the other.
-
- Releases = new HashSet<Release>();
- TrackMetadata = new HashSet<TrackMetadata>();
-
- Init();
- }
-
- /// <summary>
- /// Replaces default constructor, since it's protected. Caller assumes responsibility for setting all required values before saving.
- /// </summary>
- public static Track CreateTrackUnsafe()
- {
- return new Track();
- }
-
- /// <summary>
- /// Public constructor with required data.
- /// </summary>
- /// <param name="urlid">This is whats gets displayed in the Urls and API requests. This could also be a string.</param>
- /// <param name="dateadded">The date the object was added.</param>
- /// <param name="_musicalbum0"></param>
- public Track(Guid urlid, DateTime dateadded, MusicAlbum _musicalbum0)
- {
- // NOTE: This class has one-to-one associations with LibraryRoot, LibraryItem and CollectionItem.
- // One-to-one associations are not validated in constructors since this causes a scenario where each one must be constructed before the other.
-
- this.UrlId = urlid;
-
- if (_musicalbum0 == null)
+ if (album == null)
{
- throw new ArgumentNullException(nameof(_musicalbum0));
+ throw new ArgumentNullException(nameof(album));
}
- _musicalbum0.Tracks.Add(this);
-
- this.Releases = new HashSet<Release>();
- this.TrackMetadata = new HashSet<TrackMetadata>();
+ album.Tracks.Add(this);
- Init();
+ Releases = new HashSet<Release>();
+ TrackMetadata = new HashSet<TrackMetadata>();
}
/// <summary>
- /// Static create function (for use in LINQ queries, etc.)
+ /// Initializes a new instance of the <see cref="Track"/> class.
/// </summary>
- /// <param name="urlid">This is whats gets displayed in the Urls and API requests. This could also be a string.</param>
- /// <param name="dateadded">The date the object was added.</param>
- /// <param name="_musicalbum0"></param>
- public static Track Create(Guid urlid, DateTime dateadded, MusicAlbum _musicalbum0)
+ /// <remarks>
+ /// Default constructor. Protected due to required properties, but present because EF needs it.
+ /// </remarks>
+ protected Track()
{
- return new Track(urlid, dateadded, _musicalbum0);
}
- /*************************************************************************
- * Properties
- *************************************************************************/
-
/// <summary>
- /// Backing field for TrackNumber.
+ /// Gets or sets the track number.
/// </summary>
- protected int? _TrackNumber;
- /// <summary>
- /// When provided in a partial class, allows value of TrackNumber to be changed before setting.
- /// </summary>
- partial void SetTrackNumber(int? oldValue, ref int? newValue);
- /// <summary>
- /// When provided in a partial class, allows value of TrackNumber to be changed before returning.
- /// </summary>
- partial void GetTrackNumber(ref int? result);
+ public int? TrackNumber { get; set; }
- public int? TrackNumber
- {
- get
- {
- int? value = _TrackNumber;
- GetTrackNumber(ref value);
- return _TrackNumber = value;
- }
-
- set
- {
- int? oldValue = _TrackNumber;
- SetTrackNumber(oldValue, ref value);
- if (oldValue != value)
- {
- _TrackNumber = value;
- }
- }
- }
-
- /*************************************************************************
- * Navigation properties
- *************************************************************************/
-
- [ForeignKey("Release_Releases_Id")]
+ /// <inheritdoc />
public virtual ICollection<Release> Releases { get; protected set; }
- [ForeignKey("TrackMetadata_TrackMetadata_Id")]
+ /// <summary>
+ /// Gets or sets a collection containing the track metadata.
+ /// </summary>
public virtual ICollection<TrackMetadata> TrackMetadata { get; protected set; }
}
}
-