Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        /// <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));
        }
Esempio n. 5
0
        /// <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));
        }
Esempio n. 6
0
        /// <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));
        }