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

100 lines
3.4 KiB
C#

using Modules.Library.Application.Gateways;
using Modules.Library.Application.Models.Anime;
using Modules.Library.Database.GatewaysImplementations.Converters;
using Modules.Library.Database.Repositories;
using Modules.Library.Domain.Entities.MediaContent.Items.Anime;
namespace Modules.Library.Database.GatewaysImplementations;
public class AnimeTitleGateway(AnimeTitleRepository context, LanguageRepository languageRepository, GenreRepository genreRepository) : IAnimeTitleGateway
{
private readonly AnimeTitleConverter _converter = new(languageRepository, genreRepository);
public async Task<List<Title>> GetList()
{
var list = await context.GetAllAsync();
var result = new List<Title>();
foreach (var title in list)
{
result.Add(await _converter.Convert(title));
}
return result;
}
public async Task<Title> GetDetail(Guid id)
{
var dbTitle = await context.GetByIdAsync(id);
return await _converter.Convert(dbTitle);
}
public Task<Guid> Create(AnimeTitle title)
{
return context.AddAsync(_converter.Convert(title));
}
public async Task<AnimeTitle> GetById(Guid id)
{
var dbTitle = await context.GetByIdAsync(id);
return await _converter.ConvertToDomain(dbTitle);
}
public Task Update(AnimeTitle title) => context.UpdateAsync(_converter.Convert(title));
/*
public async Task AddAsync(Domain.Entities.MediaContent.Items.Anime.AnimeTitle entity, IUser user) =>
await AddAsync(ToDbConverter.Title(entity));
public Task<bool> AnyWhere(Expression<Func<Domain.Entities.MediaContent.Items.Anime.AnimeTitle, bool>> predicate)
{
var p = predicate.
}
public Task<bool> DeleteAsync(Domain.Entities.MediaContent.Items.Anime.AnimeTitle entity, IUser user)
{
throw new NotImplementedException();
}
public Task<Domain.Entities.MediaContent.Items.Anime.AnimeTitle> GetByIdAsync(string id)
{
throw new NotImplementedException();
}
public Task<Domain.Entities.MediaContent.Items.Anime.AnimeTitle?> GetByIdOrDefaultAsync(string id)
{
throw new NotImplementedException();
}
public Task<Domain.Entities.MediaContent.Items.Anime.AnimeTitle?> GetFirstOrDefaultWhere(Expression<Func<Domain.Entities.MediaContent.Items.Anime.AnimeTitle, bool>> predicate)
{
throw new NotImplementedException();
}
public Task<Domain.Entities.MediaContent.Items.Anime.AnimeTitle> GetFirstWhere(Expression<Func<Domain.Entities.MediaContent.Items.Anime.AnimeTitle, bool>> predicate)
{
throw new NotImplementedException();
}
public Task<List<Domain.Entities.MediaContent.Items.Anime.AnimeTitle>> GetRangeByIdsAsync(List<string> ids)
{
throw new NotImplementedException();
}
public Task<List<Domain.Entities.MediaContent.Items.Anime.AnimeTitle>> GetWhere(Expression<Func<Domain.Entities.MediaContent.Items.Anime.AnimeTitle, bool>> predicate)
{
throw new NotImplementedException();
}
public Task<bool> UpdateAsync(Domain.Entities.MediaContent.Items.Anime.AnimeTitle entity, IUser user)
{
throw new NotImplementedException();
}
Task<List<Domain.Entities.MediaContent.Items.Anime.AnimeTitle>> Application.Gateways.IRepository<Domain.Entities.MediaContent.Items.Anime.AnimeTitle, string>.GetAllAsync()
{
throw new NotImplementedException();
}
*/
}