internal static string ToSerializedString(this TcTransactionStatus status) { switch (status) { case TcTransactionStatus.Due: case TcTransactionStatus.Paid: case TcTransactionStatus.Partial: case TcTransactionStatus.Pending: case TcTransactionStatus.Void: var b = (byte)status; return(b.ToString(NumberFormatInfo.InvariantInfo)); case TcTransactionStatus.WithBalance: return("with_balance"); case TcTransactionStatus.Overdue: return("overdue"); case TcTransactionStatus.Waive: return("waive"); default: throw new ArgumentOutOfRangeException(nameof(status), status, "Unknown status"); } }
public static IPaginatedSource <TcTransaction> ForStatus(this IPaginatedSource <TcTransaction> source, TcTransactionStatus status) { if (source is PaginatedSource <TcTransaction> paginatedSource) { return(paginatedSource.ProjectedWithExtraUrl(url => url + "&status=" + status.ToSerializedString())); } throw new ArgumentException("Invalid source."); }