public static async Task <T> GetAsync <T>(this HttpClient client, Uri uri,
                                                  params KeyValuePair <string, string>[] parameters)
        {
            var resourceUri = uri.AppendParameters(parameters);

            HttpResponseMessage response = await client.GetAsync(resourceUri);

            return(await response.DeserializeWithStatusCodeCheckAsync <T>());
        }
示例#2
0
        /// <summary>
        /// Append date range parameters to a URI following Square V1 specification.
        /// </summary>
        /// <param name="baseUri">Uri on which to append.</param>
        /// <param name="beginTime">Begin time.</param>
        /// <param name="endTime">End time.</param>
        /// <param name="listOrder">Ascending or descending. Descending is default.</param>
        /// <returns>New uri with date-range parameters included with values.</returns>
        public static Uri AppendOrderOrLimit(this Uri baseUri, short?limit, ListOrderType?listOrder)
        {
            var parameters = new List <string>();

            if (listOrder.HasValue)
            {
                parameters.Add("order");
                parameters.Add(listOrder.Value.EnumToString());
            }

            if (limit.HasValue)
            {
                parameters.Add("limit");
                parameters.Add(limit.Value.ToString());
            }

            return(baseUri.AppendParameters(parameters.ToArray()));
        }
示例#3
0
        /// <summary>
        /// Append date range parameters to a URI following Square V1 specification.
        /// </summary>
        /// <param name="baseUri">Uri on which to append.</param>
        /// <param name="beginTime">Begin time.</param>
        /// <param name="endTime">End time.</param>
        /// <param name="beginLabel">parameter name.</param>
        /// <param name="endLabel">parameter name.</param>
        /// <returns>New uri with date-range parameters included with values.</returns>
        public static Uri AppendDateRange(this Uri baseUri, string beginLabel, DateTime?beginTime, string endLabel, DateTime?endTime)
        {
            const string format = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK";

            var parameters = new List <string>();

            if (beginTime.HasValue)
            {
                parameters.Add(beginLabel);
                parameters.Add(beginTime.Value.ToUniversalTime().ToString(format));
            }

            if (endTime.HasValue)
            {
                parameters.Add(endLabel);
                parameters.Add(endTime.Value.ToUniversalTime().ToString(format));
            }

            return(baseUri.AppendParameters(parameters.ToArray()));
        }