using CryptoExchange.Net.Objects; using System.Text; namespace CryptoExchange.Net.SharedApis { /// /// Options for requesting recent trades /// public class GetRecentTradesOptions : EndpointOptions { /// public override string Description => "Retrieve recent public trades for a symbol"; /// /// The max number of trades that can be requested /// public int MaxLimit { get; set; } /// /// ctor /// public GetRecentTradesOptions(string exchange, int limit, bool authenticated) : base(exchange, authenticated, nameof(IRecentTradeRestClient.GetRecentTradesAsync)) { MaxLimit = limit; } /// public override Error? ValidateRequest(GetRecentTradesRequest request, IRecentTradeRestClient client) { var baseError = base.ValidateRequest(request, client); if (baseError != null) return baseError; if (request.Limit > MaxLimit) return ArgumentError.Invalid(nameof(GetRecentTradesRequest.Limit), $"Only the most recent {MaxLimit} trades are available"); return null; } /// public override string ToString() { var sb = new StringBuilder(base.ToString()); sb.AppendLine($" Max data points: {MaxLimit}"); return sb.ToString(); } } }