diff --git a/src/Umbraco.Compat7/Core/DatabaseContext.cs b/src/Umbraco.Compat7/Core/DatabaseContext.cs
index 96cba04a53..35a5829a56 100644
--- a/src/Umbraco.Compat7/Core/DatabaseContext.cs
+++ b/src/Umbraco.Compat7/Core/DatabaseContext.cs
@@ -32,12 +32,12 @@ namespace Umbraco.Core
///
/// Creates a Sql statement.
///
- public Sql Sql() => _databaseFactory.SqlContext.Sql();
+ public Sql Sql() => _databaseFactory.SqlContext.Sql();
///
/// Creates a Sql statement.
///
- public Sql Sql(string sql, params object[] args) => _databaseFactory.SqlContext.Sql(sql, args);
+ public Sql Sql(string sql, params object[] args) => _databaseFactory.SqlContext.Sql(sql, args);
///
/// Creates a Query expression.
diff --git a/src/Umbraco.Core/Persistence/ISqlContext.cs b/src/Umbraco.Core/Persistence/ISqlContext.cs
index 45b3da40b2..7ac28c2364 100644
--- a/src/Umbraco.Core/Persistence/ISqlContext.cs
+++ b/src/Umbraco.Core/Persistence/ISqlContext.cs
@@ -23,12 +23,12 @@ namespace Umbraco.Core.Persistence
///
/// Creates a new Sql expression.
///
- Sql Sql();
+ Sql Sql();
///
/// Creates a new Sql expression.
///
- Sql Sql(string sql, params object[] args);
+ Sql Sql(string sql, params object[] args);
///
/// Creates a new query expression.
diff --git a/src/Umbraco.Core/Persistence/IUmbracoDatabase.cs b/src/Umbraco.Core/Persistence/IUmbracoDatabase.cs
index feef6a23bd..899a1d0de6 100644
--- a/src/Umbraco.Core/Persistence/IUmbracoDatabase.cs
+++ b/src/Umbraco.Core/Persistence/IUmbracoDatabase.cs
@@ -7,7 +7,7 @@ namespace Umbraco.Core.Persistence
///
/// Gets the Sql context.
///
- SqlContext SqlContext { get; }
+ ISqlContext SqlContext { get; }
///
/// Gets the database instance unique identifier as a string.
diff --git a/src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs b/src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs
index b370cc0c00..3bceb0b544 100644
--- a/src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs
+++ b/src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs
@@ -52,9 +52,9 @@ namespace Umbraco.Core.Persistence.Migrations
public IUpdateBuilder Update => new UpdateBuilder(Context);
- protected Sql Sql() => Context.SqlContext.Sql();
+ protected Sql Sql() => Context.SqlContext.Sql();
- protected Sql Sql(string sql, params object[] args) => Context.SqlContext.Sql(sql, args);
+ protected Sql Sql(string sql, params object[] args) => Context.SqlContext.Sql(sql, args);
public IIfDatabaseBuilder IfDatabase(params DatabaseType[] supportedDatabaseTypes)
{
diff --git a/src/Umbraco.Core/Persistence/NPocoDatabaseExtensions.cs b/src/Umbraco.Core/Persistence/NPocoDatabaseExtensions.cs
index 8a69df36e3..b81e68e567 100644
--- a/src/Umbraco.Core/Persistence/NPocoDatabaseExtensions.cs
+++ b/src/Umbraco.Core/Persistence/NPocoDatabaseExtensions.cs
@@ -218,7 +218,7 @@ namespace Umbraco.Core.Persistence
return transaction?.IsolationLevel ?? IsolationLevel.Unspecified;
}
- public static IEnumerable FetchByGroups(this IDatabase db, IEnumerable source, int groupSize, Func, Sql> sqlFactory)
+ public static IEnumerable FetchByGroups(this IDatabase db, IEnumerable source, int groupSize, Func, Sql> sqlFactory)
{
return source.SelectByGroups(x => db.Fetch(sqlFactory(x)), groupSize);
}
diff --git a/src/Umbraco.Core/Persistence/NPocoSqlExtensions.cs b/src/Umbraco.Core/Persistence/NPocoSqlExtensions.cs
index aa16a30591..749b112adf 100644
--- a/src/Umbraco.Core/Persistence/NPocoSqlExtensions.cs
+++ b/src/Umbraco.Core/Persistence/NPocoSqlExtensions.cs
@@ -26,7 +26,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// A predicate to transform and append to the Sql statement.
/// The Sql statement.
- public static Sql Where(this Sql sql, Expression> predicate)
+ public static Sql Where(this Sql sql, Expression> predicate)
{
var expresionist = new PocoToSqlExpressionVisitor(sql.SqlContext);
var whereExpression = expresionist.Visit(predicate);
@@ -44,7 +44,7 @@ namespace Umbraco.Core.Persistence
/// An optional alias for Dto 1 table.
/// An optional alias for Dto 2 table.
/// The Sql statement.
- public static Sql Where(this Sql sql, Expression> predicate, string alias1 = null, string alias2 = null)
+ public static Sql Where(this Sql sql, Expression> predicate, string alias1 = null, string alias2 = null)
{
var expresionist = new PocoToSqlExpressionVisitor(sql.SqlContext, alias1, alias2);
var whereExpression = expresionist.Visit(predicate);
@@ -60,7 +60,7 @@ namespace Umbraco.Core.Persistence
/// An expression specifying the field.
/// The values.
/// The Sql statement.
- public static Sql WhereIn(this Sql sql, Expression> field, IEnumerable values)
+ public static Sql WhereIn(this Sql sql, Expression> field, IEnumerable values)
{
var fieldName = GetFieldName(field, sql.SqlContext.SqlSyntax);
sql.Where(fieldName + " IN (@values)", new { values });
@@ -75,7 +75,7 @@ namespace Umbraco.Core.Persistence
/// An expression specifying the field.
/// A subquery returning the value.
/// The Sql statement.
- public static Sql WhereIn(this Sql sql, Expression> field, Sql values)
+ public static Sql WhereIn(this Sql sql, Expression> field, Sql values)
{
return sql.WhereIn(field, values, false);
}
@@ -88,7 +88,7 @@ namespace Umbraco.Core.Persistence
/// An expression specifying the field.
/// The values.
/// The Sql statement.
- public static Sql WhereNotIn(this Sql sql, Expression> field, IEnumerable values)
+ public static Sql WhereNotIn(this Sql sql, Expression> field, IEnumerable values)
{
var fieldName = GetFieldName(field, sql.SqlContext.SqlSyntax);
sql.Where(fieldName + " NOT IN (@values)", new { values });
@@ -103,7 +103,7 @@ namespace Umbraco.Core.Persistence
/// An expression specifying the field.
/// A subquery returning the value.
/// The Sql statement.
- public static Sql WhereNotIn(this Sql sql, Expression> field, Sql values)
+ public static Sql WhereNotIn(this Sql sql, Expression> field, Sql values)
{
return sql.WhereIn(field, values, true);
}
@@ -116,7 +116,7 @@ namespace Umbraco.Core.Persistence
/// Expressions specifying the fields.
/// The values.
/// The Sql statement.
- public static Sql WhereAnyIn(this Sql sql, Expression>[] fields, IEnumerable values)
+ public static Sql WhereAnyIn(this Sql sql, Expression>[] fields, IEnumerable values)
{
var fieldNames = fields.Select(x => GetFieldName(x, sql.SqlContext.SqlSyntax)).ToArray();
var sb = new StringBuilder();
@@ -132,7 +132,7 @@ namespace Umbraco.Core.Persistence
return sql;
}
- private static Sql WhereIn(this Sql sql, Expression> fieldSelector, Sql valuesSql, bool not)
+ private static Sql WhereIn(this Sql sql, Expression> fieldSelector, Sql valuesSql, bool not)
{
var fieldName = GetFieldName(fieldSelector, sql.SqlContext.SqlSyntax);
sql.Where(fieldName + (not ? " NOT" : "") +" IN (" + valuesSql.SQL + ")", valuesSql.Arguments);
@@ -149,7 +149,7 @@ namespace Umbraco.Core.Persistence
/// The type of the Dto.
/// The Sql statement.
/// The Sql statement.
- public static Sql From(this Sql sql)
+ public static Sql From(this Sql sql)
{
var type = typeof (TDto);
var tableName = type.GetTableName();
@@ -169,7 +169,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An expression specifying the field.
/// The Sql statement.
- public static Sql OrderBy(this Sql sql, Expression> field)
+ public static Sql OrderBy(this Sql sql, Expression> field)
{
return sql.OrderBy("(" + GetFieldName(field, sql.SqlContext.SqlSyntax) + ")"); // fixme - explain (...)
}
@@ -181,7 +181,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expression specifying the fields.
/// The Sql statement.
- public static Sql OrderBy(this Sql sql, params Expression>[] fields)
+ public static Sql OrderBy(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -196,7 +196,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An expression specifying the field.
/// The Sql statement.
- public static Sql OrderByDescending(this Sql sql, Expression> field)
+ public static Sql OrderByDescending(this Sql sql, Expression> field)
{
return sql.OrderBy("(" + GetFieldName(field, sql.SqlContext.SqlSyntax) + ") DESC"); // fixme - explain (...)
}
@@ -208,7 +208,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expression specifying the fields.
/// The Sql statement.
- public static Sql OrderByDescending(this Sql sql, params Expression>[] fields)
+ public static Sql OrderByDescending(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -222,7 +222,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expression specifying the fields.
/// The Sql statement.
- public static Sql OrderByDescending(this Sql sql, params object[] fields)
+ public static Sql OrderByDescending(this Sql sql, params object[] fields)
{
return sql.Append("ORDER BY " + string.Join(", ", fields.Select(x => x + " DESC")));
}
@@ -234,7 +234,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An expression specifying the field.
/// The Sql statement.
- public static Sql GroupBy(this Sql sql, Expression> field)
+ public static Sql GroupBy(this Sql sql, Expression> field)
{
return sql.GroupBy(GetFieldName(field, sql.SqlContext.SqlSyntax));
}
@@ -246,7 +246,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expression specifying the fields.
/// The Sql statement.
- public static Sql GroupBy(this Sql sql, params Expression>[] fields)
+ public static Sql GroupBy(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -261,7 +261,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expressions specifying the fields.
/// The Sql statement.
- public static Sql AndBy(this Sql sql, params Expression>[] fields)
+ public static Sql AndBy(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -276,7 +276,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// Expressions specifying the fields.
/// The Sql statement.
- public static Sql AndByDesc(this Sql sql, params Expression>[] fields)
+ public static Sql AndByDesc(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -295,7 +295,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An optional alias for the joined table.
/// A SqlJoin statement.
- public static Sql.SqlJoinClause InnerJoin(this Sql sql, string alias = null)
+ public static Sql.SqlJoinClause InnerJoin(this Sql sql, string alias = null)
{
var type = typeof(TDto);
var tableName = type.GetTableName();
@@ -312,7 +312,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An optional alias for the joined table.
/// A SqlJoin statement.
- public static Sql.SqlJoinClause LeftJoin(this Sql sql, string alias = null)
+ public static Sql.SqlJoinClause LeftJoin(this Sql sql, string alias = null)
{
var type = typeof(TDto);
var tableName = type.GetTableName();
@@ -329,7 +329,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// An optional alias for the joined table.
/// A SqlJoin statement.
- public static Sql.SqlJoinClause RightJoin(this Sql sql, string alias = null)
+ public static Sql.SqlJoinClause RightJoin(this Sql sql, string alias = null)
{
var type = typeof(TDto);
var tableName = type.GetTableName();
@@ -348,13 +348,13 @@ namespace Umbraco.Core.Persistence
/// An expression specifying the left field.
/// An expression specifying the right field.
/// The Sql statement.
- public static Sql On(this Sql.SqlJoinClause sqlJoin,
+ public static Sql On(this Sql.SqlJoinClause sqlJoin,
Expression> leftField, Expression> rightField)
{
// fixme - ugly - should define on SqlContext!
- var xLeft = new Sql(sqlJoin.SqlContext).Columns(leftField);
- var xRight = new Sql(sqlJoin.SqlContext).Columns(rightField);
+ var xLeft = new Sql(sqlJoin.SqlContext).Columns(leftField);
+ var xRight = new Sql(sqlJoin.SqlContext).Columns(rightField);
return sqlJoin.On(xLeft + " = " + xRight);
//var sqlSyntax = clause.SqlContext.SqlSyntax;
@@ -380,9 +380,9 @@ namespace Umbraco.Core.Persistence
/// The Sql join statement.
/// A Sql fragment to use as the ON clause body.
/// The Sql statement.
- public static Sql On(this Sql.SqlJoinClause sqlJoin, Func, Sql> on)
+ public static Sql On(this Sql.SqlJoinClause sqlJoin, Func, Sql> on)
{
- var sql = new Sql(sqlJoin.SqlContext);
+ var sql = new Sql(sqlJoin.SqlContext);
sql = on(sql);
return sqlJoin.On(sql.SQL, sql.Arguments);
}
@@ -397,7 +397,7 @@ namespace Umbraco.Core.Persistence
/// An optional alias for Dto 1 table.
/// An optional alias for Dto 2 table.
/// The Sql statement.
- public static Sql On(this Sql.SqlJoinClause sqlJoin, Expression> predicate, string alias1 = null, string alias2 = null)
+ public static Sql On(this Sql.SqlJoinClause sqlJoin, Expression> predicate, string alias1 = null, string alias2 = null)
{
var expresionist = new PocoToSqlExpressionVisitor(sqlJoin.SqlContext, alias1, alias2);
var onExpression = expresionist.Visit(predicate);
@@ -414,7 +414,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// The maximum number of rows to return.
/// The Sql statement.
- public static Sql SelectTop(this Sql sql, int count)
+ public static Sql SelectTop(this Sql sql, int count)
{
return sql.SqlContext.SqlSyntax.SelectTop(sql, count);
}
@@ -424,7 +424,7 @@ namespace Umbraco.Core.Persistence
///
/// The origin sql.
/// The Sql statement.
- public static Sql SelectCount(this Sql sql)
+ public static Sql SelectCount(this Sql sql)
{
return sql.Select("COUNT(*)");
}
@@ -439,7 +439,7 @@ namespace Umbraco.Core.Persistence
///
/// If is empty, all columns are counted.
///
- public static Sql SelectCount(this Sql sql, params Expression>[] fields)
+ public static Sql SelectCount(this Sql sql, params Expression>[] fields)
{
var columns = fields.Length == 0
? sql.GetColumns(withAlias: false)
@@ -452,7 +452,7 @@ namespace Umbraco.Core.Persistence
///
/// The origin sql.
/// The Sql statement.
- public static Sql SelectAll(this Sql sql)
+ public static Sql SelectAll(this Sql sql)
{
return sql.Select("*");
}
@@ -467,7 +467,7 @@ namespace Umbraco.Core.Persistence
///
/// If is empty, all columns are selected.
///
- public static Sql Select(this Sql sql, params Expression>[] fields)
+ public static Sql Select(this Sql sql, params Expression>[] fields)
{
return sql.Select(sql.GetColumns(columnExpressions: fields));
}
@@ -479,7 +479,7 @@ namespace Umbraco.Core.Persistence
/// The origin Sql.
/// An expression specifying the reference.
/// The Sql statement.
- public static Sql Select(this Sql sql, Func, SqlRef> reference)
+ public static Sql Select(this Sql sql, Func, SqlRef> reference)
{
sql.Select(sql.GetColumns());
@@ -497,7 +497,7 @@ namespace Umbraco.Core.Persistence
/// The Sql statement.
/// The expression applies to the Sql statement before the reference selection
/// is added, so that it is possible to add (e.g. calculated) columns to the referencing Dto.
- public static Sql Select(this Sql sql, Func, SqlRef> reference, Func, Sql> sqlexpr)
+ public static Sql Select(this Sql sql, Func, SqlRef> reference, Func, Sql> sqlexpr)
{
sql.Select(sql.GetColumns());
@@ -518,7 +518,7 @@ namespace Umbraco.Core.Persistence
///
/// The original Sql expression.
/// The current Dtos prefix.
- public SqlRef(Sql sql, string prefix)
+ public SqlRef(Sql sql, string prefix)
{
Sql = sql;
Prefix = prefix;
@@ -527,7 +527,7 @@ namespace Umbraco.Core.Persistence
///
/// Gets the original Sql expression.
///
- public Sql Sql { get; }
+ public Sql Sql { get; }
///
/// Gets the current Dtos prefix.
@@ -611,7 +611,7 @@ namespace Umbraco.Core.Persistence
///
/// If is empty, all fields are selected.
///
- public static string Columns(this Sql sql, params Expression>[] fields)
+ public static string Columns(this Sql sql, params Expression>[] fields)
{
return string.Join(", ", sql.GetColumns(columnExpressions: fields, withAlias: false));
}
@@ -627,7 +627,7 @@ namespace Umbraco.Core.Persistence
///
/// If is empty, all fields are selected.
///
- public static string Columns(this Sql sql, string alias, params Expression>[] fields)
+ public static string Columns(this Sql sql, string alias, params Expression>[] fields)
{
return string.Join(", ", sql.GetColumns(columnExpressions: fields, withAlias: false, tableAlias: alias));
}
@@ -636,7 +636,7 @@ namespace Umbraco.Core.Persistence
#region Utilities
- private static object[] GetColumns(this Sql sql, string tableAlias = null, string referenceName = null, Expression>[] columnExpressions = null, bool withAlias = true)
+ private static object[] GetColumns(this Sql sql, string tableAlias = null, string referenceName = null, Expression>[] columnExpressions = null, bool withAlias = true)
{
var pd = sql.SqlContext.PocoDataFactory.ForType(typeof (TDto));
var tableName = tableAlias ?? pd.TableInfo.TableName;
diff --git a/src/Umbraco.Core/Persistence/Querying/PocoToSqlExpressionVisitor.cs b/src/Umbraco.Core/Persistence/Querying/PocoToSqlExpressionVisitor.cs
index 7fe623a2fa..6846ea1e30 100644
--- a/src/Umbraco.Core/Persistence/Querying/PocoToSqlExpressionVisitor.cs
+++ b/src/Umbraco.Core/Persistence/Querying/PocoToSqlExpressionVisitor.cs
@@ -14,7 +14,7 @@ namespace Umbraco.Core.Persistence.Querying
{
private readonly PocoData _pd;
- public PocoToSqlExpressionVisitor(SqlContext sqlContext)
+ public PocoToSqlExpressionVisitor(ISqlContext sqlContext)
: base(sqlContext.SqlSyntax)
{
_pd = sqlContext.PocoDataFactory.ForType(typeof(TDto));
@@ -79,7 +79,7 @@ namespace Umbraco.Core.Persistence.Querying
private readonly string _alias1, _alias2;
private string _parameterName1, _parameterName2;
- public PocoToSqlExpressionVisitor(SqlContext sqlContext, string alias1, string alias2)
+ public PocoToSqlExpressionVisitor(ISqlContext sqlContext, string alias1, string alias2)
: base(sqlContext.SqlSyntax)
{
_pocoData1 = sqlContext.PocoDataFactory.ForType(typeof (TDto1));
diff --git a/src/Umbraco.Core/Persistence/Querying/Query.cs b/src/Umbraco.Core/Persistence/Querying/Query.cs
index dd84d283f6..cb81965659 100644
--- a/src/Umbraco.Core/Persistence/Querying/Query.cs
+++ b/src/Umbraco.Core/Persistence/Querying/Query.cs
@@ -13,10 +13,10 @@ namespace Umbraco.Core.Persistence.Querying
///
public class Query : IQuery
{
- private readonly SqlContext _sqlContext;
+ private readonly ISqlContext _sqlContext;
private readonly List> _wheres = new List>();
- public Query(SqlContext sqlContext)
+ public Query(ISqlContext sqlContext)
{
_sqlContext = sqlContext;
}
@@ -57,7 +57,7 @@ namespace Umbraco.Core.Persistence.Querying
StringBuilder sb = null;
List
protected internal IScopeUnitOfWork UnitOfWork { get; }
- protected Sql Sql() => UnitOfWork.SqlContext.Sql();
+ protected Sql Sql() => UnitOfWork.SqlContext.Sql();
#region Query Methods
@@ -388,7 +388,7 @@ namespace Umbraco.Core.Persistence.Repositories
#region Sql Statements
- protected Sql GetFullSqlForEntityType(Guid key, bool isContent, bool isMedia, Guid objectTypeId)
+ protected Sql GetFullSqlForEntityType(Guid key, bool isContent, bool isMedia, Guid objectTypeId)
{
var entitySql = GetBaseWhere(GetBase, isContent, isMedia, objectTypeId, key);
@@ -397,7 +397,7 @@ namespace Umbraco.Core.Persistence.Repositories
: entitySql.Append(GetGroupBy(isContent, false));
}
- protected Sql GetFullSqlForEntityType(int id, bool isContent, bool isMedia, Guid objectTypeId)
+ protected Sql GetFullSqlForEntityType(int id, bool isContent, bool isMedia, Guid objectTypeId)
{
var entitySql = GetBaseWhere(GetBase, isContent, isMedia, objectTypeId, id);
@@ -406,7 +406,7 @@ namespace Umbraco.Core.Persistence.Repositories
: entitySql.Append(GetGroupBy(isContent, false));
}
- protected Sql GetFullSqlForEntityType(bool isContent, bool isMedia, Guid objectTypeId, Action> filter)
+ protected Sql GetFullSqlForEntityType(bool isContent, bool isMedia, Guid objectTypeId, Action> filter)
{
var entitySql = GetBaseWhere(GetBase, isContent, isMedia, filter, objectTypeId);
@@ -415,7 +415,7 @@ namespace Umbraco.Core.Persistence.Repositories
: entitySql.Append(GetGroupBy(isContent, false));
}
- private Sql GetPropertySql(Guid nodeObjectType)
+ private Sql GetPropertySql(Guid nodeObjectType)
{
var sql = Sql()
.Select("contentNodeId, versionId, dataNvarchar, dataNtext, propertyEditorAlias, alias as propertyTypeAlias")
@@ -431,7 +431,7 @@ namespace Umbraco.Core.Persistence.Repositories
return sql;
}
- private Sql GetFullSqlForMedia(Sql entitySql, Action> filter = null)
+ private Sql GetFullSqlForMedia(Sql entitySql, Action> filter = null)
{
//this will add any dataNvarchar property to the output which can be added to the additional properties
@@ -454,12 +454,12 @@ namespace Umbraco.Core.Persistence.Repositories
return wrappedSql;
}
- protected virtual Sql GetBase(bool isContent, bool isMedia, Action> customFilter)
+ protected virtual Sql GetBase(bool isContent, bool isMedia, Action> customFilter)
{
return GetBase(isContent, isMedia, customFilter, false);
}
- protected virtual Sql GetBase(bool isContent, bool isMedia, Action> customFilter, bool isCount)
+ protected virtual Sql GetBase(bool isContent, bool isMedia, Action> customFilter, bool isCount)
{
var columns = new List