protected bool Equals(DataRequestQuery other) { return(Start.Equals(other.Start) && End.Equals(other.End) && Limit == other.Limit && Direction == other.Direction && ExtraParameters.SequenceEqual(other.ExtraParameters)); }
/// <summary> /// Retrieves the stats for the application based on a custom query. It should be used with <see cref="DataRequestQuery"/>. /// It is mainly because of the way a PaginatedResource defines its queries. For retrieving Stats with special parameters use <see cref="RestClient.Stats(StatsDataRequestQuery query)"/> /// </summary> /// <example> /// var client = new RestClient("validkey"); /// var stats = client.Stats(); /// var nextPage = cliest.Stats(stats.NextQuery); /// </example> /// <param name="query"><see cref="DataRequestQuery"/> and <see cref="StatsDataRequestQuery"/></param> /// <returns></returns> public IPaginatedResource <Stats> Stats(DataRequestQuery query) { query.Validate(); var request = RestMethods.CreateGetRequest("/stats"); request.AddQueryParameters(query.GetParameters()); return(RestMethods.ExecuteRequest <PaginatedResource <Stats> >(request)); }
internal static DataRequestQuery Parse(string querystring) { var query = new DataRequestQuery(); query.QueryString = querystring; var queryParameters = querystring.ParseQueryString(); foreach (var key in queryParameters.AllKeys) { switch (key.ToLower()) { case "start": query.Start = ToDateTime(queryParameters[key]); break; case "end": query.End = ToDateTime(queryParameters[key]); break; case "direction": var direction = QueryDirection.Forwards; if (Enum.TryParse(queryParameters[key], true, out direction)) { query.Direction = direction; } break; case "limit": int limit = 0; if (int.TryParse(queryParameters[key], out limit)) { query.Limit = limit; } break; default: query.ExtraParameters.Add(key, queryParameters[key]); break; } } return(query); }