MyBookmark/Modules.Library.Database/GatewaysImplementations/Converters/AnimeEpisodeConverter.cs
2024-09-23 03:00:50 +03:00

48 lines
1.7 KiB
C#

using Modules.Library.Database.Database.Models.Anime;
namespace Modules.Library.Database.GatewaysImplementations.Converters;
internal class AnimeEpisodeConverter
{
private readonly CommonPropertiesConverter _commonPropertiesConverter;
internal AnimeEpisodeConverter(CommonPropertiesConverter commonPropertiesConverter)
{
_commonPropertiesConverter = commonPropertiesConverter;
}
internal async Task<Application.Models.Anime.Episode> Convert(AnimeEpisode episode)
{
return new Application.Models.Anime.Episode
{
Id = episode.Id,
Deleted = episode.Deleted,
Completed = episode.Completed,
CommonProperties = await _commonPropertiesConverter.Convert(episode.CommonProperties),
Number = episode.Number,
Order = episode.Order,
Variant = episode.Variant,
ExpirationTime = episode.ExpirationTime,
Type = (Application.Models.AnimeEpisodeType)episode.Type,
Duration = episode.Duration,
};
}
internal AnimeEpisode Convert(Domain.Entities.MediaContent.Items.Anime.AnimeEpisode episode)
{
var dbEpisode = new AnimeEpisode
{
Type = (AnimeEpisodeType)episode.Type,
CommonProperties = _commonPropertiesConverter.Convert(episode.CommonProperties),
Order = episode.Order,
Variant = episode.Variant,
Number = episode.Number,
Completed = episode.Completed,
Deleted = episode.Deleted,
ExpirationTime = episode.ExpirationTime,
};
if (!episode.IsTransient()) dbEpisode.Id = episode.Id;
return dbEpisode;
}
}