예제 #1
0
        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);
        }
예제 #2
0
        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));
        }