83 lines
2.2 KiB
C#
83 lines
2.2 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 AnimeEpisodeBuilder
|
|
{
|
|
private AnimeEpisodeShadow episode = new();
|
|
|
|
public AnimeEpisodeBuilder SetCommonProperties(CommonPropertiesBuilder builder)
|
|
{
|
|
episode.commonProperties = builder.Build();
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetOrder(ushort value)
|
|
{
|
|
episode.order = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetVariant(ushort value)
|
|
{
|
|
episode.variant = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetDuration(TimeSpan value)
|
|
{
|
|
episode.duration = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetType(AnimeEpisodeType value)
|
|
{
|
|
episode.type = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetNumber(int? value)
|
|
{
|
|
episode.number = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetCompleted(bool value)
|
|
{
|
|
episode.completed = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetDeleted(bool value)
|
|
{
|
|
episode.deleted = value;
|
|
return this;
|
|
}
|
|
|
|
public AnimeEpisodeBuilder SetExpirationTime(TimeSpan value)
|
|
{
|
|
episode.expirationTime = value;
|
|
return this;
|
|
}
|
|
|
|
internal static AnimeEpisodeBuilder FromAnimeEpisode(AnimeEpisode episode)
|
|
{
|
|
var builder = new AnimeEpisodeBuilder();
|
|
builder.SetCommonProperties(CommonPropertiesBuilder.FromCommonProperties(episode.CommonProperties));
|
|
builder.SetOrder(episode.Order);
|
|
builder.SetVariant(episode.Variant);
|
|
if (episode.Duration.HasValue) builder.SetDuration(episode.Duration.Value);
|
|
builder.SetType(episode.Type);
|
|
builder.SetNumber(episode.Number);
|
|
builder.SetCompleted(episode.Completed);
|
|
builder.SetDeleted(episode.Deleted);
|
|
builder.SetExpirationTime(episode.ExpirationTime);
|
|
return builder;
|
|
}
|
|
|
|
internal AnimeEpisodeShadow Build()
|
|
{
|
|
return episode;
|
|
}
|
|
} |