/// <summary> /// Generic method to get all rows in the table, with order by and paging options /// </summary> /// <returns>List of T objects</returns> public async Task <IEnumerable <T> > GetAllAsync(CollectionParameters parameters) { string orderby = string.Empty; string top = string.Empty; string offset = string.Empty; if (parameters.OrderBy != null && parameters.OrderBy.Length > 0 && typeof(T).GetProperties().Count(f => f.Name.Equals(parameters.OrderBy)) == 1) { orderby = "ORDER BY " + parameters.OrderBy + ((parameters.Ordering == AscDec.Asc) ? " ASC" : " DESC"); } if (parameters.Limit != null && parameters.Limit > 0) { top = $"TOP({parameters.Limit})"; } if (parameters.Offset != null && parameters.Offset > 0) { offset = $"OFFSET {parameters.Offset} ROWS"; } string sql = $"SELECT {top} * FROM {_tableName} {orderby} {offset} "; return(await _connection.QueryAsync <T>(sql, transaction : _transaction)); }
public abstract Task <IEnumerable <T> > FindAsync(string search, CollectionParameters parameters);