public override IEnumerable <UserDisplayData> Execute() { IEnumerable <UserDisplayData> accounts = null; string query = BASE_QUERY; SqlFilterCriterion criterion = (SqlFilterCriterion)Filter; bool usesParameter = criterion.UsesParameter; DbParameter[] parameters = null; if (criterion != null) { query += $"WHERE {criterion.Evaluate()} "; parameters = criterion.GetParameters(); } if (Ordering != null) { query += string.Format("ORDER BY {0} ", Ordering.Evaluate()); } MySQLProvider provider = new MySQLProvider(DBConfiguration.ConnectionString); SQLCaller caller = new SQLCaller(provider); DbCommand command = criterion.UsesParameter ? provider.CreateCommand(query, parameters) : provider.CreateCommand(query); accounts = caller.Get(MapUserDisplay, command); return(accounts); }