Example #1
0
 public LimitSegment(int startIndex, int stopIndex, IPaginationValueSegment offset, IPaginationValueSegment rowCount)
 {
     _startIndex = startIndex;
     _stopIndex  = stopIndex;
     _offset     = offset;
     _rowCount   = rowCount;
 }
Example #2
0
 public PaginationContext(IPaginationValueSegment offsetSegment, IPaginationValueSegment rowCountSegment, ParameterContext parameterContext)
 {
     _hasPagination        = null != offsetSegment || null != rowCountSegment;
     this._offsetSegment   = offsetSegment;
     this._rowCountSegment = rowCountSegment;
     _actualOffset         = null == offsetSegment ? 0 : GetValue(offsetSegment, parameterContext);
     _actualRowCount       = null == rowCountSegment ? (long?)null : GetValue(rowCountSegment, parameterContext);
 }
Example #3
0
 private long GetValue(IPaginationValueSegment paginationValueSegment, ParameterContext parameterContext)
 {
     if (paginationValueSegment is IParameterMarkerPaginationValueSegment parameterMarkerPaginationValueSegment)
     {
         if (parameterContext.TryGetParameterValue(parameterMarkerPaginationValueSegment.GetParameterName(), out var parameterValue))
         {
             return(parameterValue is long l ? l : (int)parameterValue);
         }
         else
         {
             throw new ShardingException(
                       $"{nameof(IParameterMarkerPaginationValueSegment)} cant get value that parameter name:[{parameterMarkerPaginationValueSegment.GetParameterName()}]  ");
         }
     }
     else
     {
         return(((INumberLiteralPaginationValueSegment)paginationValueSegment).GetValue());
     }
 }