Esempio n. 1
0
        /// <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));
        }
Esempio n. 3
0
 /// <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)
 {
 }