Convert parsing from getters to methods

This commit is contained in:
Biarity 2018-07-06 11:12:45 +10:00
parent c816cf2f2a
commit f9c7fb4cb0
4 changed files with 57 additions and 63 deletions

View File

@ -20,8 +20,8 @@ namespace Sieve.Models
int? PageSize { get; set; }
List<TFilterTerm> FiltersParsed { get; }
List<TFilterTerm> GetFiltersParsed();
List<TSortTerm> SortsParsed { get; }
List<TSortTerm> GetSortsParsed();
}
}

View File

@ -25,9 +25,7 @@ namespace Sieve.Models
[DataMember, Range(1, int.MaxValue)]
public int? PageSize { get; set; }
public List<TFilterTerm> FiltersParsed
{
get
public List<TFilterTerm> GetFiltersParsed()
{
if (Filters != null)
{
@ -65,11 +63,8 @@ namespace Sieve.Models
return null;
}
}
}
public List<TSortTerm> SortsParsed
{
get
public List<TSortTerm> GetSortsParsed()
{
if (Sorts != null)
{
@ -96,5 +91,4 @@ namespace Sieve.Models
}
}
}
}

View File

@ -164,14 +164,14 @@ namespace Sieve.Services
IQueryable<TEntity> result,
object[] dataForCustomMethods = null)
{
if (model?.FiltersParsed == null)
if (model?.GetFiltersParsed() == null)
{
return result;
}
Expression outerExpression = null;
var parameterExpression = Expression.Parameter(typeof(TEntity), "e");
foreach (var filterTerm in model.FiltersParsed)
foreach (var filterTerm in model.GetFiltersParsed())
{
Expression innerExpression = null;
foreach (var filterTermName in filterTerm.Names)
@ -281,13 +281,13 @@ namespace Sieve.Services
IQueryable<TEntity> result,
object[] dataForCustomMethods = null)
{
if (model?.SortsParsed == null)
if (model?.GetSortsParsed() == null)
{
return result;
}
var useThenBy = false;
foreach (var sortTerm in model.SortsParsed)
foreach (var sortTerm in model.GetSortsParsed())
{
var property = GetSieveProperty<TEntity>(true, false, sortTerm.Name);

View File

@ -148,9 +148,9 @@ namespace SieveUnitTests
Filters = "LikeCount==50",
};
Console.WriteLine(model.FiltersParsed[0].Value);
Console.WriteLine(model.FiltersParsed[0].Operator);
Console.WriteLine(model.FiltersParsed[0].OperatorParsed);
Console.WriteLine(model.GetFiltersParsed()[0].Value);
Console.WriteLine(model.GetFiltersParsed()[0].Operator);
Console.WriteLine(model.GetFiltersParsed()[0].OperatorParsed);
var result = _processor.Apply(model, _posts);