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,9 @@
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class IncludeAllQueryable
{
public static IQueryable<LoadTestRunInfo> IncludeAll(this IQueryable<LoadTestRunInfo> queryable)
{
return queryable.Include(loadTestRunInfo => loadTestRunInfo.RateProcessingInfos);
}
}
@@ -0,0 +1,8 @@
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class IncludeFiltersQueryable
{
public static IQueryable<LoadTestRunInfo> IncludeFilters(this IQueryable<LoadTestRunInfo> queryable, LoadTestRunInfoFilter loadTestRunInfoFilter)
=> queryable.FilterRateType(loadTestRunInfoFilter)
.FilterInProgress(loadTestRunInfoFilter)
.FilterByRunTime(loadTestRunInfoFilter);
}
@@ -0,0 +1,13 @@
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class LoadTestRunInfoInProgressQueryable
{
public static IQueryable<LoadTestRunInfo> FilterInProgress(this IQueryable<LoadTestRunInfo> queryable, LoadTestRunInfoFilter loadTestRunInfoFilter)
{
if (!loadTestRunInfoFilter.InProgress)
{
return queryable;
}
return queryable.Where(loadTestRunInfo => !loadTestRunInfo.EndTimeStamp.HasValue);
}
}
@@ -0,0 +1,13 @@
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class LoadTestRunInfoRateTypeQueryable
{
public static IQueryable<LoadTestRunInfo> FilterRateType(this IQueryable<LoadTestRunInfo> queryable, LoadTestRunInfoFilter loadTestRunInfoFilter)
{
if (loadTestRunInfoFilter?.RateTypes == null || !loadTestRunInfoFilter.RateTypes.Any())
{
return queryable;
}
return queryable.Where(loadTestRunInfo => loadTestRunInfoFilter.RateTypes.Contains(loadTestRunInfo.RateType));
}
}
@@ -0,0 +1,21 @@
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class LoadTestRunInfoRunTimeQueryable
{
public static IQueryable<LoadTestRunInfo> FilterByRunTime(this IQueryable<LoadTestRunInfo> queryable, LoadTestRunInfoFilter loadTestRunInfoFilter)
{
if (loadTestRunInfoFilter.StartTimeStamp == null && loadTestRunInfoFilter.EndTimeStamp == null)
{
return queryable;
}
if (loadTestRunInfoFilter.StartTimeStamp == null)
{
loadTestRunInfoFilter.StartTimeStamp = DateTime.MinValue;
}
return queryable.Where(loadTestRunInfo => loadTestRunInfo.StartTimeStamp >= loadTestRunInfoFilter.StartTimeStamp &&
(loadTestRunInfoFilter.InProgress
|| !loadTestRunInfoFilter.EndTimeStamp.HasValue
|| loadTestRunInfo.StartTimeStamp <= loadTestRunInfoFilter.EndTimeStamp));
}
}
@@ -0,0 +1,28 @@
using System.Text;
using System.Linq.Dynamic.Core;
namespace LCU.API.Internal.LoanRateLoadTestingLib.Extensions.Queryables;
public static class SortableFieldsQueryable
{
public static IQueryable<LoadTestRunInfo> OrderBySortableFields(this IQueryable<LoadTestRunInfo> queryable, LoadTestRunInfoFilter loadTestRunInfoFilter)
{
var sortableFields = loadTestRunInfoFilter.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());
}
}