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