MyBookmark/Modules.Library.Database/GatewaysImplementations/Converters/AnimeEpisodeConverter.cs
THE_KONDRAT 3294f8d88d title:
non season episode
seasons
2024-12-29 19:41:07 +03:00

75 lines
2.6 KiB
C#

using Modules.Library.Database.Database.Models.Anime;
using Modules.Library.Database.Repositories;
namespace Modules.Library.Database.GatewaysImplementations.Converters;
internal class AnimeEpisodeConverter
{
private readonly CommonPropertiesConverter _commonPropertiesConverter;
internal AnimeEpisodeConverter(CommonPropertiesConverter commonPropertiesConverter)
{
_commonPropertiesConverter = commonPropertiesConverter;
}
internal AnimeEpisodeConverter(LanguageRepository languageRepository, GenreRepository genreRepository)
{
_commonPropertiesConverter = new CommonPropertiesConverter(languageRepository, genreRepository);
}
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.TypeFlag,
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;
}
internal async Task<Domain.Models.AnimeEpisode> ConvertToDomain(AnimeEpisode episode)
{
return new Domain.Models.AnimeEpisode
{
Id = episode.Id,
Deleted = episode.Deleted,
Completed = episode.Completed,
CommonProperties = await _commonPropertiesConverter.ConvertToDomain(episode.CommonProperties),
Number = episode.Number,
Order = episode.Order,
Variant = episode.Variant,
ExpirationTime = episode.ExpirationTime,
Type = (Domain.Entities.MediaContent.Items.Anime.AnimeEpisodeType)episode.TypeFlag,
Duration = episode.Duration,
};
}
}