aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data/Entities/Libraries/CollectionItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Data/Entities/Libraries/CollectionItem.cs')
-rw-r--r--Jellyfin.Data/Entities/Libraries/CollectionItem.cs152
1 files changed, 45 insertions, 107 deletions
diff --git a/Jellyfin.Data/Entities/Libraries/CollectionItem.cs b/Jellyfin.Data/Entities/Libraries/CollectionItem.cs
index 4b01d814f..c9306f630 100644
--- a/Jellyfin.Data/Entities/Libraries/CollectionItem.cs
+++ b/Jellyfin.Data/Entities/Libraries/CollectionItem.cs
@@ -1,156 +1,94 @@
-#pragma warning disable CS1591
-
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
+using Jellyfin.Data.Interfaces;
namespace Jellyfin.Data.Entities.Libraries
{
- public partial class CollectionItem
+ /// <summary>
+ /// An entity representing a collection item.
+ /// </summary>
+ public class CollectionItem : IHasConcurrencyToken
{
- partial void Init();
-
- /// <summary>
- /// Default constructor. Protected due to required properties, but present because EF needs it.
- /// </summary>
- protected CollectionItem()
- {
- // NOTE: This class has one-to-one associations with CollectionItem.
- // One-to-one associations are not validated in constructors since this causes a scenario where each one must be constructed before the other.
-
- Init();
- }
-
- /// <summary>
- /// Replaces default constructor, since it's protected. Caller assumes responsibility for setting all required values before saving.
- /// </summary>
- public static CollectionItem CreateCollectionItemUnsafe()
- {
- return new CollectionItem();
- }
-
/// <summary>
- /// Public constructor with required data.
+ /// Initializes a new instance of the <see cref="CollectionItem"/> class.
/// </summary>
- /// <param name="_collection0"></param>
- /// <param name="_collectionitem1"></param>
- /// <param name="_collectionitem2"></param>
- public CollectionItem(Collection _collection0, CollectionItem _collectionitem1, CollectionItem _collectionitem2)
+ /// <param name="collection">The collection.</param>
+ /// <param name="previous">The previous item.</param>
+ /// <param name="next">The next item.</param>
+ public CollectionItem(Collection collection, CollectionItem previous, CollectionItem next)
{
- // NOTE: This class has one-to-one associations with CollectionItem.
- // One-to-one associations are not validated in constructors since this causes a scenario where each one must be constructed before the other.
-
- if (_collection0 == null)
+ if (collection == null)
{
- throw new ArgumentNullException(nameof(_collection0));
+ throw new ArgumentNullException(nameof(collection));
}
- _collection0.CollectionItem.Add(this);
+ collection.Items.Add(this);
- if (_collectionitem1 == null)
+ if (next != null)
{
- throw new ArgumentNullException(nameof(_collectionitem1));
+ Next = next;
+ next.Previous = this;
}
- _collectionitem1.Next = this;
-
- if (_collectionitem2 == null)
+ if (previous != null)
{
- throw new ArgumentNullException(nameof(_collectionitem2));
+ Previous = previous;
+ previous.Next = this;
}
-
- _collectionitem2.Previous = this;
-
- Init();
}
/// <summary>
- /// Static create function (for use in LINQ queries, etc.)
+ /// Initializes a new instance of the <see cref="CollectionItem"/> class.
/// </summary>
- /// <param name="_collection0"></param>
- /// <param name="_collectionitem1"></param>
- /// <param name="_collectionitem2"></param>
- public static CollectionItem Create(Collection _collection0, CollectionItem _collectionitem1, CollectionItem _collectionitem2)
+ /// <remarks>
+ /// Default constructor. Protected due to required properties, but present because EF needs it.
+ /// </remarks>
+ protected CollectionItem()
{
- return new CollectionItem(_collection0, _collectionitem1, _collectionitem2);
}
- /*************************************************************************
- * Properties
- *************************************************************************/
-
/// <summary>
- /// Backing field for Id.
+ /// Gets or sets the id.
/// </summary>
- internal int _Id;
- /// <summary>
- /// When provided in a partial class, allows value of Id to be changed before setting.
- /// </summary>
- partial void SetId(int oldValue, ref int newValue);
- /// <summary>
- /// When provided in a partial class, allows value of Id to be changed before returning.
- /// </summary>
- partial void GetId(ref int result);
-
- /// <summary>
+ /// <remarks>
/// Identity, Indexed, Required.
- /// </summary>
- [Key]
- [Required]
+ /// </remarks>
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public int Id
- {
- get
- {
- int value = _Id;
- GetId(ref value);
- return _Id = value;
- }
-
- protected set
- {
- int oldValue = _Id;
- SetId(oldValue, ref value);
- if (oldValue != value)
- {
- _Id = value;
- }
- }
- }
+ public int Id { get; set; }
- /// <summary>
- /// Required, ConcurrenyToken.
- /// </summary>
+ /// <inheritdoc />
[ConcurrencyCheck]
- [Required]
public uint RowVersion { get; set; }
- public void OnSavingChanges()
- {
- RowVersion++;
- }
-
- /*************************************************************************
- * Navigation properties
- *************************************************************************/
-
/// <summary>
- /// Required.
+ /// Gets or sets the library item.
/// </summary>
- [ForeignKey("LibraryItem_Id")]
+ /// <remarks>
+ /// Required.
+ /// </remarks>
public virtual LibraryItem LibraryItem { get; set; }
+ /// <summary>
+ /// Gets or sets the next item in the collection.
+ /// </summary>
/// <remarks>
/// TODO check if this properly updated dependant and has the proper principal relationship
/// </remarks>
- [ForeignKey("CollectionItem_Next_Id")]
public virtual CollectionItem Next { get; set; }
+ /// <summary>
+ /// Gets or sets the previous item in the collection.
+ /// </summary>
/// <remarks>
/// TODO check if this properly updated dependant and has the proper principal relationship
/// </remarks>
- [ForeignKey("CollectionItem_Previous_Id")]
public virtual CollectionItem Previous { get; set; }
+
+ /// <inheritdoc />
+ public void OnSavingChanges()
+ {
+ RowVersion++;
+ }
}
}
-