OrderByDynamic is modified to be able to handle inherited members, such as interface members.

SieveProcessor is modified to pass propertyInfo to OrderByDynamic to avoid reattainment of propertyInfo required in Expression.MakeMemberAccess.
SieveProcessor is modified to be able to handle possible multiple incompatible customMethods via AggregateException.
Corresponding interfaces are generated for entities with related inheritance.
ApplicationSieveProcessor is modified to include interface members.
SieveCustomFilterMethods and SieveCustomSortMethod are modified to include interface related custom method modifications.
Interface accessed unit tests are added.
This commit is contained in:
Hasan
2020-11-03 12:42:41 +03:00
parent 51b5356ec7
commit a4509bb8f0
14 changed files with 775 additions and 17 deletions

View File

@@ -1,9 +1,10 @@
using System;
using Sieve.Attributes;
using SieveUnitTests.Abstractions.Entity;
namespace SieveUnitTests.Entities
{
public class BaseEntity
public class BaseEntity : IBaseEntity
{
public int Id { get; set; }

View File

@@ -1,8 +1,9 @@
using Sieve.Attributes;
using SieveUnitTests.Abstractions.Entity;
namespace SieveUnitTests.Entities
{
public class Comment : BaseEntity
public class Comment : BaseEntity, IComment
{
[Sieve(CanFilter = true)]
public string Text { get; set; }

View File

@@ -1,9 +1,10 @@
using System;
using Sieve.Attributes;
using SieveUnitTests.Abstractions.Entity;
namespace SieveUnitTests.Entities
{
public class Post : BaseEntity
public class Post : BaseEntity, IPost
{
[Sieve(CanFilter = true, CanSort = true)]