internal static RequestParameters CreateParameters(BusinessControllerBase controller, HttpRequestMessage request) { controller.ThrowIfNull("controller"); request.ThrowIfNull("request"); Dictionary<string, object> postParameters = HttpMessageReader.ReadResponseAs<Dictionary<string, object>>(request); RequestParameters parameters = new RequestParameters(); MethodInfo method = controller.GetControllerMethod(controller.Url.BusinessAction); ParameterInfo[] methodParams = method.GetParameters(); for (int i = 0; i < methodParams.Length; i++) { object parameterValue; if (!controller.Url.Parameters.ContainsKey(methodParams[i].Name)) { if (postParameters.ContainsKey(methodParams[i].Name)) { parameterValue = JsonConvert.DeserializeObject(postParameters[methodParams[i].Name].ToString(), methodParams[i].ParameterType); //parameterValue = Convert.ChangeType(, ); } else { continue; } } else { parameterValue = Convert.ChangeType(controller.Url.Parameters[methodParams[i].Name], methodParams[i].ParameterType); } parameters.AddParameter(methodParams[i].Name, parameterValue); } return parameters; }
/// <inheritdoc /> public async Task <Catalog> AutocompleteAsync(string q) { var parameters = new RequestParameters(); parameters.AddParameter("q", q); return(await Client.GetAsync <Catalog>(Client.BuildUri("cards/autocomplete", parameters)) .ConfigureAwait(false)); }
public async Task <ManaCost> ParseManaAsync(string cost) { var parameters = new RequestParameters(); parameters.AddParameter("cost", cost); return(await Client.GetAsync <ManaCost>(Client.BuildUri("symbology/parse-mana", parameters)) .ConfigureAwait(false)); }
/// <inheritdoc /> public async Task <CardList> GetAllAsync(int?page = default(int?)) { var parameters = new RequestParameters(); parameters.AddParameter("page", page); return(await Client.GetAsync <CardList>(Client.BuildUri("cards", parameters)) .ConfigureAwait(false)); }
/// <inheritdoc /> public async Task <Card> GetNamedAsync(string exact = default(string), string fuzzy = default(string), string set = default(string), string format = default(string), string face = default(string), string version = default(string), bool?pretty = default(bool?)) { var parameters = new RequestParameters(); parameters.AddParameter("exact", exact); parameters.AddParameter("fuzzy", fuzzy); parameters.AddParameter("set", set); parameters.AddParameter("format", format); parameters.AddParameter("face", face); parameters.AddParameter("version", version); parameters.AddParameter("pretty", pretty); return(await Client.GetAsync <Card>(Client.BuildUri("cards/named", parameters)) .ConfigureAwait(false)); }
/// <inheritdoc /> public async Task <CardList> SearchAsync(string q, UniqueStrategy?unique = default(UniqueStrategy?), SortOrder?order = default(SortOrder?), SortDirection?dir = default(SortDirection?), bool?includeExtras = default(bool?), int?page = default(int?)) { var parameters = new RequestParameters(); parameters.AddParameter("q", q); parameters.AddParameter("unique", unique); parameters.AddParameter("order", order); parameters.AddParameter("dir", dir); parameters.AddParameter("include_extras", includeExtras); parameters.AddParameter("page", page); return(await Client.GetAsync <CardList>(Client.BuildUri("cards/search", parameters)) .ConfigureAwait(false)); }