This commit is contained in:
Zeeshaun
2026-04-07 14:21:04 -05:00
parent e37826fe30
commit 75ea216a17
264 changed files with 15920 additions and 0 deletions
@@ -0,0 +1,36 @@
using Microsoft.EntityFrameworkCore;
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class IncludeAllQueryable
{
public static IQueryable<Rate> IncludeAll(this IQueryable<Rate> queryable)
{
return queryable.Include(rate => rate.RateEvaluations);
}
public static IQueryable<Rate> IncludeAllRatesEvaluations(this IQueryable<Rate> queryable)
{
return queryable.Include(rate => rate.RateEvaluations)
.ThenInclude(rate => rate.EvaluationDetail);
}
public static IQueryable<RateUploadInfo> IncludeAll(this IQueryable<RateUploadInfo> queryable)
{
return queryable.Include(rateUploadInfo => rateUploadInfo.Rates)
.Include(rateUploadInfo => rateUploadInfo.ClosedRates)
.ThenInclude(rate => rate.RateEvaluations);
}
public static IQueryable<RateUploadInfo> IncludeAllButClosedRates(this IQueryable<RateUploadInfo> queryable)
{
return queryable.Include(rateUploadInfo => rateUploadInfo.Rates)
.ThenInclude(rate => rate.RateEvaluations);
}
public static IQueryable<RateSheet> IncludeAll(this IQueryable<RateSheet> queryable)
{
return queryable.Include(rateSheet => rateSheet.RateSheetCells)
.Include(rateSheet => rateSheet.Rates)
.ThenInclude(rate => rate.RateEvaluations);
}
}
@@ -0,0 +1,8 @@
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class IncludeFiltersQueryable
{
public static IQueryable<RateUploadInfo> IncludeFilters(this IQueryable<RateUploadInfo> queryable, RateUploadInfoFilter rateUploadInfoFilter)
=> queryable.FilterByEffectiveDate(rateUploadInfoFilter)
.FilterByVersion(rateUploadInfoFilter)
.FilterByCreatedBy(rateUploadInfoFilter);
}
@@ -0,0 +1,13 @@
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class RateUploadInfoCreatedByQueryable
{
public static IQueryable<RateUploadInfo> FilterByCreatedBy(this IQueryable<RateUploadInfo> queryable, RateUploadInfoFilter rateUploadInfoFilter)
{
if (rateUploadInfoFilter.CreatedBy == null)
{
return queryable;
}
return queryable.Where(rateUploadInfo => rateUploadInfo.CreatedBy.ToUpper().Contains(rateUploadInfoFilter.CreatedBy.ToUpper()));
}
}
@@ -0,0 +1,13 @@
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class RateUploadInfoEffectiveDateQueryable
{
public static IQueryable<RateUploadInfo> FilterByEffectiveDate(this IQueryable<RateUploadInfo> queryable, RateUploadInfoFilter rateUploadInfoFilter)
{
if (rateUploadInfoFilter.EffectiveDate == null)
{
return queryable;
}
return queryable.Where(rateUploadInfo => rateUploadInfo.EffectiveDate.Date == ((DateTime)rateUploadInfoFilter.EffectiveDate).Date);
}
}
@@ -0,0 +1,13 @@
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class RateUploadInfoVersionQueryable
{
public static IQueryable<RateUploadInfo> FilterByVersion(this IQueryable<RateUploadInfo> queryable, RateUploadInfoFilter rateUploadInfoFilter)
{
if (rateUploadInfoFilter.Version == null)
{
return queryable;
}
return queryable.Where(rateUploadInfo => rateUploadInfo.Version == (int)rateUploadInfoFilter.Version);
}
}
@@ -0,0 +1,28 @@
using System.Linq.Dynamic.Core;
using System.Text;
namespace LCU.API.Internal.LoanRateLib.Extensions.Queryables;
public static class SortableFieldsQueryable
{
public static IQueryable<RateUploadInfo> OrderBySortableFields(this IQueryable<RateUploadInfo> queryable, RateUploadInfoFilter rateUploadInfoFilter)
{
var sortableFields = rateUploadInfoFilter.SortableFields
.Where(sortableField => sortableField.Active && sortableField.Position >= 0)
.OrderBy(sortableField => sortableField.Position).ToList();
if (sortableFields == null || !sortableFields.Any())
{
return queryable;
}
var orderBy = new StringBuilder();
foreach (var field in sortableFields)
{
var addedComma = orderBy.ToString() == "" ? "" : " ,";
var desc = field.IsDescending ? " desc" : "";
orderBy.Append($"{addedComma}{field.Field}{desc}");
}
return queryable.OrderBy(orderBy.ToString());
}
}