using LCU.API.Internal.LoanRateLoadTestingLib.Persistence; using LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables; using LCU.Library.Internal.LCUFilterModels.Pagination; namespace LCU.API.Internal.LoanRateLoadTestingLib.Repositories; public class LoadTestRunInfoRepository : BaseRepository, ILoadTestRunInfoRepository { public LoadTestRunInfoRepository(AppDbContext context) : base(context) { } public async Task?> FindAsync() { return await _context.LoadTestRunInfos.IncludeAll().ToListAsync(); } public async Task FindByIdAsync(int id) { return await _context.LoadTestRunInfos.IncludeAll().FirstOrDefaultAsync(loadTestRunInfo => loadTestRunInfo.LoadTestRunInfoId == id); } public async Task?> FindRangeByIdAsync(List ids) { return await _context.LoadTestRunInfos .Where(loadTestRunInfo => ids.Contains(loadTestRunInfo.LoadTestRunInfoId)) .IncludeAll() .ToListAsync(); } public async Task> FindFilteredLoadTestRunInfosAsync(LoadTestRunInfoFilter loadTestRunInfoFilter) { var results = new PagedResult(); var skip = (loadTestRunInfoFilter.Page - 1) * loadTestRunInfoFilter.Limit; results.Total = await _context.LoadTestRunInfos .IncludeAll() .IncludeFilters(loadTestRunInfoFilter) .CountAsync(); results.Items = await _context.LoadTestRunInfos .IncludeAll() .IncludeFilters(loadTestRunInfoFilter) .OrderBySortableFields(loadTestRunInfoFilter) .Skip(skip) .Take(loadTestRunInfoFilter.Limit) .ToArrayAsync(); return results; } public async Task AddAsync(LoadTestRunInfo loadTestRunInfo) { return (await _context.LoadTestRunInfos.AddAsync(loadTestRunInfo)).Entity; } public async Task AddRangeAsync(IEnumerable loadTestRunInfos) { await _context.LoadTestRunInfos.AddRangeAsync(loadTestRunInfos); } public void UpdateRange(IEnumerable loadTestRunInfos) { _context.LoadTestRunInfos.UpdateRange(loadTestRunInfos); } public void Remove(LoadTestRunInfo loadTestRunInfo) { _context.LoadTestRunInfos.Remove(loadTestRunInfo); } public void RemoveRange(IEnumerable loadTestRunInfos) { _context.LoadTestRunInfos.RemoveRange(loadTestRunInfos); } }