Adding
This commit is contained in:
+36
@@ -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);
|
||||
}
|
||||
}
|
||||
+8
@@ -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);
|
||||
}
|
||||
+13
@@ -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()));
|
||||
}
|
||||
}
|
||||
+13
@@ -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);
|
||||
}
|
||||
}
|
||||
+13
@@ -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);
|
||||
}
|
||||
}
|
||||
+28
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user