Skip to content

Commit

Permalink
Removed the needless complication of type parameter from sort expression
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuck committed Jan 31, 2021
1 parent 5c48dcf commit 936f1dd
Show file tree
Hide file tree
Showing 9 changed files with 16 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ protected string BuildSqlForGet(IReadOnlyCollection<IDataParameter> parameters)
return sql;
}

protected string BuildSqlForSearch<TSortExpression>(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression<TSortExpression>> sort) where TSortExpression : class
protected string BuildSqlForSearch(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression> sort)
{
var columns = BuildColumnsSql();
var sorting = string.Join(", ", sort.Select(t => t.GetSortExpression()));
Expand Down
4 changes: 2 additions & 2 deletions src/YuckQi.Data.Sql.Dapper/Providers/SearchProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public SearchProvider(IUnitOfWork uow) : base(uow)

#region Public Methods

public async Task<IPage<TEntity>> SearchAsync<TSortExpression>(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression<TSortExpression>> sort) where TSortExpression : class
public async Task<IPage<TEntity>> SearchAsync(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression> sort)
{
if (parameters == null)
throw new ArgumentNullException(nameof(parameters));
Expand All @@ -47,7 +47,7 @@ public async Task<IPage<TEntity>> SearchAsync<TSortExpression>(IReadOnlyCollecti
return new Page<TEntity>(entities, total, page.PageNumber, page.PageSize);
}

public Task<IPage<TEntity>> SearchAsync<TSortExpression>(object parameters, IPage page, IOrderedEnumerable<ISortExpression<TSortExpression>> sort) where TSortExpression : class
public Task<IPage<TEntity>> SearchAsync(object parameters, IPage page, IOrderedEnumerable<ISortExpression> sort)
{
return SearchAsync(parameters?.ToParameterCollection<SqlParameter>(), page, sort);
}
Expand Down
6 changes: 3 additions & 3 deletions src/YuckQi.Data.Sql.Dapper/Sorting/SortExpression.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

namespace YuckQi.Data.Sql.Dapper.Sorting
{
public class SortExpression : ISortExpression<string>
public class SortExpression : ISortExpression
{
public SortCriteria<string> Criteria { get; }
public SortCriteria Criteria { get; }

public SortExpression(SortCriteria<string> criteria)
public SortExpression(SortCriteria criteria)
{
Criteria = criteria;
}
Expand Down
2 changes: 1 addition & 1 deletion src/YuckQi.Data.Sql.Dapper/YuckQi.Data.Sql.Dapper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Kevin J Lambert</Authors>
<Version>0.4.0</Version>
<Version>0.4.1</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Description>An implementation of YuckQi.Data using Dapper and SimpleCRUD.</Description>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Kevin J Lambert</Authors>
<Version>0.4.0</Version>
<Version>0.4.1</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Description>An implementation of YuckQi.Data using Entity Framework.</Description>
</PropertyGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/YuckQi.Data/Providers/Abstract/ISearchProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace YuckQi.Data.Providers.Abstract
{
public interface ISearchProvider<TEntity, TKey> where TEntity : IEntity<TKey> where TKey : struct
{
Task<IPage<TEntity>> SearchAsync<TSortExpression>(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression<TSortExpression>> sort) where TSortExpression : class;
Task<IPage<TEntity>> SearchAsync<TSortExpression>(object parameters, IPage page, IOrderedEnumerable<ISortExpression<TSortExpression>> sort) where TSortExpression : class;
Task<IPage<TEntity>> SearchAsync(IReadOnlyCollection<IDataParameter> parameters, IPage page, IOrderedEnumerable<ISortExpression> sort);
Task<IPage<TEntity>> SearchAsync(object parameters, IPage page, IOrderedEnumerable<ISortExpression> sort);
}
}
4 changes: 2 additions & 2 deletions src/YuckQi.Data/Sorting/Abstract/ISortExpression.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
namespace YuckQi.Data.Sorting.Abstract
{
public interface ISortExpression<T> where T : class
public interface ISortExpression
{
SortCriteria<T> Criteria { get; }
SortCriteria Criteria { get; }

string GetSortExpression();
}
Expand Down
6 changes: 3 additions & 3 deletions src/YuckQi.Data/Sorting/SortCriteria.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

namespace YuckQi.Data.Sorting
{
public readonly struct SortCriteria<T> where T : class
public readonly struct SortCriteria
{
public T Expression { get; }
public string Expression { get; }
public SortOrder Order { get; }

public SortCriteria(T expression, SortOrder order)
public SortCriteria(string expression, SortOrder order)
{
Expression = expression ?? throw new ArgumentNullException(nameof(expression));
Order = order;
Expand Down
2 changes: 1 addition & 1 deletion src/YuckQi.Data/YuckQi.Data.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Kevin J Lambert</Authors>
<Version>0.4.0</Version>
<Version>0.4.1</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Description>A .NET library providing fine-grained data providers useful in data repository or domain service implementations.</Description>
</PropertyGroup>
Expand Down

0 comments on commit 936f1dd

Please sign in to comment.