public async Task <NewEventBase[]> GetEventsAsync(long lastEventId = 0, int?limit = null, bool longPolling = false, CancellationToken cancellation = default) { List <string> parameters = new List <string>(); if (lastEventId != 0) { parameters.Add($"lastEventId={lastEventId}"); } if (limit != null) { parameters.Add($"limit={limit.Value}"); } if (longPolling) { parameters.Add($"longPolling={longPolling}"); } var parametersString = parameters.Count == 0 ? string.Empty : $"?{String.Join("&", parameters.ToArray<object>())}"; var evts = await Client.SendAsync <JArray>(HttpMethod.Get, null, $"v1/cryptos/{Client.CryptoCode}/events{parametersString}", null, cancellation); var evtsObj = evts.Select(ev => NewEventBase.ParseEvent((JObject)ev, Client.Serializer.Settings)) .OfType <NewEventBase>() .ToArray(); return(evtsObj); }
public async Task <NewEventBase[]> GetLatestEventsAsync(int limit = 10, CancellationToken cancellation = default) { List <string> parameters = new List <string>(); if (limit != 10) { parameters.Add($"limit={limit}"); } var parametersString = parameters.Count == 0 ? string.Empty : $"?{String.Join("&", parameters.ToArray<object>())}"; var evts = await Client.SendAsync <JArray>(HttpMethod.Get, null, $"v1/cryptos/{Client.CryptoCode}/events/latest{parametersString}", null, cancellation); var evtsObj = evts.Select(ev => NewEventBase.ParseEvent((JObject)ev, Client.Serializer.Settings)) .OfType <NewEventBase>() .ToArray(); return(evtsObj); }
private NewEventBase ParseMessage(ArraySegment <byte> buffer) { var str = UTF8.GetString(buffer.Array, 0, buffer.Count); return(NewEventBase.ParseEvent(str, _SerializerSettings)); }