/// <summary> /// Get a statement to select all records of type T which match the request. /// /// Different databases handle paged requests in different ways, so this implementation does not handle /// paged requests and it is left up to sub classes to provide this. /// </summary> /// <param name="request">The "get collection" request</param> /// <returns>A statement to represent the "select" operation</returns> protected override IDbStatement <TDbParameter> GetSelectDbStatement(IGetCollectionRequest <T> request) { var query = $"SELECT {GetSelectableColumns()} FROM {Descriptor.FullTableName}"; if (request.Filter != null) { var dbFilter = GetDbFilter(request.Filter); query += " " + dbFilter.WhereClause; return(new DbStatement <TDbParameter>(query, dbFilter.Parameters)); } return(new DbStatement <TDbParameter>(query)); }
/// <inheritdoc /> protected override IDbStatement <NpgsqlParameter> GetSelectDbStatement(IGetCollectionRequest <T> request) { var max = request.Max.GetValueOrDefault(0); if (max > 0) { if (request.Filter != null) { return(GetSelectDbStatement(request.Filter, max, request.Page.GetValueOrDefault(0))); } return(GetSelectDbStatement(max, request.Page.GetValueOrDefault(0))); } return(base.GetSelectDbStatement(request)); }
/// <summary> /// Get a statement to select all records of type T which match the request /// </summary> /// <param name="request">The "get collection" request</param> /// <returns>A statement to represent the "select" operation</returns> protected abstract IDbStatement <TDbParameter> GetSelectDbStatement(IGetCollectionRequest <T> request);
/// <summary> /// Construct a new GetCollectionBasket /// </summary> /// <param name="request">The request</param> /// <param name="parent">The basket which is the parent of the current one</param> public GetCollectionBasket(IGetCollectionRequest <T> request, IBasket parent) : base(request, parent) { }
/// <summary> /// Construct a new GetCollectionBasket /// </summary> /// <param name="request">The request</param> public GetCollectionBasket(IGetCollectionRequest <T> request) : base(request) { }