using Microsoft.EntityFrameworkCore; using WatchIt.Database; using WatchIt.Database.Model.Genders; using WatchIt.DTO.Models.Controllers.Genders.Gender; using WatchIt.DTO.Query; namespace WatchIt.WebAPI.Repositories.Genders; public class GendersRepository : Repository, IGendersRepository { #region CONSTRUCTORS public GendersRepository(DatabaseContext database) : base(database) {} #endregion #region PUBLIC METHODS public async Task ExistsAsync(short id) => await DefaultSet.AnyAsync(x => x.Id == id); public async Task GetAsync(short id, Func, IQueryable>? additionalIncludes = null) => await DefaultSet.Include(additionalIncludes) .FirstOrDefaultAsync(x => x.Id == id); public async Task> GetAllAsync(GenderFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery, Func, IQueryable>? additionalIncludes = null) => await DefaultSet.ApplyFilter(filterQuery) .ApplyOrder(orderQuery, GenderOrderKeys.Base) .ApplyPaging(pagingQuery) .Include(additionalIncludes) .ToListAsync(); #endregion }