/// <summary> /// Parses rate-limiting information from the specified <paramref name="response"/>. /// </summary> /// <param name="response">The response that holds the rate-limiting information.</param> /// <returns>An instance of <see cref="VimeoRateLimiting"/>.</returns> public static VimeoRateLimiting GetFromResponse(IHttpResponse response) { if (int.TryParse(response.Headers["X-Ratelimit-Limit"] ?? "", out int limit) == false) { limit = -1; } if (int.TryParse(response.Headers["X-Ratelimit-Remaining"] ?? "", out int remaining) == false) { remaining = -1; } EssentialsTime reset = EssentialsTime.Parse(response.Headers["X-RateLimit-Reset"]); return(new VimeoRateLimiting(limit, remaining, reset)); }
public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { switch (reader.TokenType) { case JsonTokenType.Null: return(null); case JsonTokenType.Number: return(EssentialsTime.FromUnixTimeSeconds(reader.GetInt32())); case JsonTokenType.String: return(EssentialsTime.Parse(reader.GetString())); default: throw new Exception($"Unsupported token type: {reader.TokenType}"); } }