94 lines
2.5 KiB
C#
94 lines
2.5 KiB
C#
using Modules.Library.Domain.EntitiesV0.MediaContent.Items.Anime;
|
|
using Modules.Library.Domain.EntitiesV0.MediaContent.Items.Anime.ShadowEntities;
|
|
|
|
namespace Modules.Library.Domain.EntityBuilders;
|
|
|
|
public class AnimeSeasonBuilder
|
|
{
|
|
private AnimeSeasonShadow _season = new();
|
|
private CommonPropertiesBuilder? _commonPropertiesBuilder;
|
|
|
|
public AnimeSeasonBuilder SetCommonProperties(CommonPropertiesBuilder builder)
|
|
{
|
|
_commonPropertiesBuilder = builder;
|
|
return this;
|
|
}
|
|
|
|
|
|
public AnimeSeasonBuilder SetOrder(ushort value)
|
|
{
|
|
_season.order = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetVariant(ushort value)
|
|
{
|
|
_season.variant = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetNumber(int? value)
|
|
{
|
|
_season.number = value;
|
|
return this;
|
|
}
|
|
|
|
|
|
public AnimeSeasonBuilder SetDirector(string? value)
|
|
{
|
|
_season.director = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetOriginCountry(string? value)
|
|
{
|
|
_season.originCountry = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetCompleted(bool value)
|
|
{
|
|
_season.completed = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetDeleted(bool value)
|
|
{
|
|
_season.deleted = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder SetExpirationTime(TimeSpan value)
|
|
{
|
|
_season.expirationTime = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeSeasonBuilder AddEpisode(AnimeEpisodeBuilder builder)
|
|
{
|
|
_season.episodes.Add(builder.Build());
|
|
return this;
|
|
}
|
|
|
|
internal static AnimeSeasonBuilder FromAnimeSeason(AnimeSeason season)
|
|
{
|
|
var builder = new AnimeSeasonBuilder();
|
|
builder.SetCommonProperties(CommonPropertiesBuilder.FromCommonProperties(season.CommonProperties));
|
|
builder.SetOrder(season.Order);
|
|
builder.SetVariant(season.Variant);
|
|
builder.SetNumber(season.Number);
|
|
builder.SetDirector(season.Director);
|
|
builder.SetOriginCountry(season.OriginCountry);
|
|
builder.SetCompleted(season.Completed);
|
|
builder.SetDeleted(season.Deleted);
|
|
builder.SetExpirationTime(season.ExpirationTime);
|
|
foreach (var episode in season.Episodes) { builder.AddEpisode(AnimeEpisodeBuilder.FromAnimeEpisode(episode)); }
|
|
return builder;
|
|
}
|
|
|
|
internal AnimeSeasonShadow Build()
|
|
{
|
|
if (_commonPropertiesBuilder != null) _season.commonProperties = _commonPropertiesBuilder.Build();
|
|
return _season;
|
|
}
|
|
} |