protected bool Equals(DataRequestQuery other)
 {
     return(Start.Equals(other.Start) &&
            End.Equals(other.End) &&
            Limit == other.Limit &&
            Direction == other.Direction &&
            ExtraParameters.SequenceEqual(other.ExtraParameters));
 }
Beispiel #2
0
        /// <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);
        }