Adding
This commit is contained in:
+81
@@ -0,0 +1,81 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using LCU.API.Internal.LoanRateLib.Persistence;
|
||||
using LCU.Library.Internal.LoanRateModels.Enums;
|
||||
|
||||
namespace LCU.API.Internal.LoanRateLib.Repositories;
|
||||
|
||||
public class RateEvaluationRepository : BaseRepository, IRateEvaluationRepository
|
||||
{
|
||||
public IRateRepository _rateRepository;
|
||||
|
||||
public RateEvaluationRepository(AppDbContext context,
|
||||
IRateRepository rateRepository) : base(context)
|
||||
{
|
||||
_rateRepository = rateRepository;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RateEvaluation>?> FindAsync()
|
||||
{
|
||||
return await _context.RateEvaluations.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<RateEvaluation?> FindByIdAsync(int id)
|
||||
{
|
||||
return await _context.RateEvaluations.FirstOrDefaultAsync(rateEvaluation => rateEvaluation.RateEvaluationId == id);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RateEvaluation>?> FindRangeByIdAsync(List<int> ids)
|
||||
{
|
||||
return await _context.RateEvaluations
|
||||
.Where(rateEvaluation => ids.Contains(rateEvaluation.RateEvaluationId))
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RateEvaluation>?> FindRangeByEvaluationDetailIdAsync(int evaluationDetailId)
|
||||
{
|
||||
return await _context.RateEvaluations
|
||||
.Where(rateEvaluation => rateEvaluation.EvaluationDetailId == evaluationDetailId)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RateEvaluation>?> FindByRateSheetIdsAsync(List<int> rateSheetIds)
|
||||
{
|
||||
return (await _rateRepository.FindCacheAsync())
|
||||
.Where(rate => rateSheetIds.Contains(rate.RateSheetId))
|
||||
.SelectMany(rate => rate.RateEvaluations);
|
||||
}
|
||||
|
||||
public async Task<RateEvaluation?> AddAsync(RateEvaluation rateEvaluation)
|
||||
{
|
||||
return (await _context.RateEvaluations.AddAsync(rateEvaluation)).Entity;
|
||||
}
|
||||
|
||||
public async Task AddRangeAsync(IEnumerable<RateEvaluation> rateEvaluations)
|
||||
{
|
||||
await _context.RateEvaluations.AddRangeAsync(rateEvaluations);
|
||||
}
|
||||
|
||||
public void UpdateRange(IEnumerable<RateEvaluation> rateEvaluations)
|
||||
{
|
||||
_context.RateEvaluations.UpdateRange(rateEvaluations);
|
||||
}
|
||||
|
||||
public void Remove(RateEvaluation rateEvaluation)
|
||||
{
|
||||
_context.RateEvaluations.Remove(rateEvaluation);
|
||||
}
|
||||
|
||||
public void RemoveRange(IEnumerable<RateEvaluation> rateEvaluations)
|
||||
{
|
||||
_context.RateEvaluations.RemoveRange(rateEvaluations);
|
||||
}
|
||||
|
||||
public async Task<int> CountByEvaluationDetailIdAsync(int evaluationDetailId)
|
||||
{
|
||||
return await _context.RateEvaluations
|
||||
.Where(rateEvaluation => rateEvaluation.EvaluationDetailId == evaluationDetailId)
|
||||
.Select(rateEvaluation => rateEvaluation.RateId)
|
||||
.Distinct()
|
||||
.CountAsync();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user