37 lines
1003 B
C#
37 lines
1003 B
C#
|
|
using Modules.Library.Domain.Entities.MediaContent.CommonProperties;
|
|
|
|
namespace Modules.Library.Domain.Entities.MediaContent.Items.Anime;
|
|
|
|
public abstract class AnimeItemSingle : AnimeItem
|
|
{
|
|
protected readonly AnimeSeason? _season;
|
|
public TimeSpan? Duration { get; private set; }
|
|
|
|
private protected AnimeItemSingle(AnimeTitle title, AnimeSeason? season) : base(title)
|
|
{
|
|
_season = season;
|
|
}
|
|
|
|
private protected AnimeItemSingle(AnimeTitle title, AnimeSeason? season, TimeSpan? duration) : base(title)
|
|
{
|
|
_season = season;
|
|
Duration = duration;
|
|
}
|
|
|
|
internal AnimeItemSingle(AnimeTitle title, AnimeSeason? season, IEnumerable<NameItem> names) :
|
|
base(title, names)
|
|
{
|
|
_season = season;
|
|
}
|
|
|
|
public void SetDuration(TimeSpan value) => Duration = value;
|
|
|
|
protected override void StructureAction(Action action)
|
|
{
|
|
action.Invoke();
|
|
_season?.CheckIfCompleted();
|
|
_title.CheckIfCompleted();
|
|
}
|
|
|
|
} |