using CryptoExchange.Net.Objects; using System.Text; namespace CryptoExchange.Net.SharedApis { /// /// Options for requesting closed orders /// public class GetClosedOrdersOptions : PaginatedEndpointOptions { /// /// Whether the start/end time filter is supported /// public bool TimeFilterSupported { get; set; } /// /// ctor /// public GetClosedOrdersOptions(SharedPaginationSupport paginationType, bool timeFilterSupported, int maxLimit) : base(paginationType, timeFilterSupported, maxLimit, true) { TimeFilterSupported = timeFilterSupported; } /// public override Error? ValidateRequest(string exchange, GetClosedOrdersRequest request, TradingMode? tradingMode, TradingMode[] supportedApiTypes) { if (TimeFilterSupported && request.StartTime != null) return ArgumentError.Invalid(nameof(GetClosedOrdersRequest.StartTime), $"Time filter is not supported"); return base.ValidateRequest(exchange, request, tradingMode, supportedApiTypes); } /// public override string ToString(string exchange) { var sb = new StringBuilder(base.ToString(exchange)); sb.AppendLine($"Time filter supported: {TimeFilterSupported}"); return sb.ToString(); } } }