internal static ApiLimit ParseRateLimit(IDictionary <string, string> header, string prefix) { var limitCount = (int?)ParseHeaderValue(header, prefix + "Limit"); var limitRemain = (int?)ParseHeaderValue(header, prefix + "Remaining"); var limitReset = ParseHeaderValue(header, prefix + "Reset"); if (limitCount == null || limitRemain == null || limitReset == null) { return(null); } var limitResetDate = DateTimeUtc.FromUnixTime(limitReset.Value); return(new ApiLimit(limitCount.Value, limitRemain.Value, limitResetDate)); }
public void UpdateFromJson(TwitterRateLimits json) { var rateLimits = from res in json.Resources from item in res.Value select( EndpointName : item.Key, Limit : new ApiLimit( item.Value.Limit, item.Value.Remaining, DateTimeUtc.FromUnixTime(item.Value.Reset) ) ); this.AccessLimit.AddAll(rateLimits.ToDictionary(x => x.EndpointName, x => x.Limit)); }