예제 #1
0
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var loadOptions = new DataSourceLoadOptions();

            DataSourceLoadOptionsParser.Parse(loadOptions, key => bindingContext.ValueProvider.GetValue(key)?.AttemptedValue);
            return(loadOptions);
        }
        public void AllKeys()
        {
            var opts   = new SampleLoadOptions();
            var values = new Dictionary <string, string> {
                { DataSourceLoadOptionsParser.KEY_IS_COUNT_QUERY, "true" },
                { DataSourceLoadOptionsParser.KEY_REQUIRE_TOTAL_COUNT, "true" },
                { DataSourceLoadOptionsParser.KEY_REQUIRE_GROUP_COUNT, "true" },
                { DataSourceLoadOptionsParser.KEY_SKIP, "42" },
                { DataSourceLoadOptionsParser.KEY_TAKE, "43" },
                { DataSourceLoadOptionsParser.KEY_SORT, @"[ { ""selector"": ""foo"", ""desc"": true } ]" },
                { DataSourceLoadOptionsParser.KEY_GROUP, @"[ { ""selector"": ""g"" } ]" },
                { DataSourceLoadOptionsParser.KEY_FILTER, @" [ ""foo"", ""bar"" ] " },
                { DataSourceLoadOptionsParser.KEY_TOTAL_SUMMARY, @"[ { ""selector"": ""total"", ""summaryType"": ""min"" } ]" },
                { DataSourceLoadOptionsParser.KEY_GROUP_SUMMARY, @"[ { ""selector"": ""group"", ""summaryType"": ""max"" } ]" }
            };

            DataSourceLoadOptionsParser.Parse(opts, key => values[key]);

            Assert.True(opts.IsCountQuery);
            Assert.True(opts.RequireTotalCount);
            Assert.True(opts.RequireGroupCount);
            Assert.Equal(42, opts.Skip);
            Assert.Equal(43, opts.Take);
            Assert.Equal("foo", opts.Sort[0].Selector);
            Assert.True(opts.Sort[0].Desc);
            Assert.Equal("g", opts.Group[0].Selector);
            Assert.Equal(new[] { "foo", "bar" }, opts.Filter.Cast <string>());

            Assert.Equal("total", opts.TotalSummary[0].Selector);
            Assert.Equal("min", opts.TotalSummary[0].SummaryType);

            Assert.Equal("group", opts.GroupSummary[0].Selector);
            Assert.Equal("max", opts.GroupSummary[0].SummaryType);
        }
예제 #3
0
        private DataSourceLoadOptionsBase DxLoad(Func <string, string> valueSource)
        {
            var loadOptions = new DataSourceLoadOptionsBase();

            DataSourceLoadOptionsParser.Parse(loadOptions, valueSource);
            return(loadOptions);
        }
예제 #4
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var loadOptions = new DataSourceLoadOptions();

            DataSourceLoadOptionsParser.Parse(loadOptions, key => bindingContext.ValueProvider.GetValue(key).FirstOrDefault());
            bindingContext.Result = ModelBindingResult.Success(loadOptions);
            return(Task.CompletedTask);
        }
예제 #5
0
        public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
            var loadOptions = new DataSourceLoadOptions();

            DataSourceLoadOptionsParser.Parse(loadOptions, key => bindingContext.ValueProvider.GetValue(key)?.AttemptedValue);
            bindingContext.Model = loadOptions;
            return(true);
        }
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            DataSourceLoadOptions dataSourceLoadOptions = new DataSourceLoadOptions();

            DataSourceLoadOptionsParser.Parse((DataSourceLoadOptionsBase)(object)dataSourceLoadOptions, (Func <string, string>)((string key) => bindingContext.ValueProvider.GetValue(key).FirstOrDefault()));
            bindingContext.Result = ModelBindingResult.Success(dataSourceLoadOptions);
            return(Task.FromResult(result: true));
        }
예제 #7
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            CultureInfo.CurrentCulture = new CultureInfo("tr-TR", false);
            var loadOptions = new DataSourceLoadOptions();

            loadOptions.StringToLower = true;
            DataSourceLoadOptionsParser.Parse(loadOptions,
                                              key => bindingContext.ValueProvider.GetValue(key).FirstOrDefault());
            bindingContext.Result = ModelBindingResult.Success(loadOptions);
            return(Task.CompletedTask);
        }
        public void MustNotParseDates()
        {
            var opts = new SampleLoadOptions();

            DataSourceLoadOptionsParser.Parse(opts, key => {
                if (key == DataSourceLoadOptionsParser.KEY_FILTER)
                {
                    return(@"[ ""d"", ""2011-12-13T14:15:16Z"" ]");
                }
                return(null);
            });

            Assert.IsType <string>(opts.Filter[1]);
        }
예제 #9
0
        private DataSourceLoadOptionsBase GetOptionsFromQuery(string query)
        {
            DataSourceLoadOptionsBase          options       = new DataSourceLoadOptionsBase();
            IDictionary <string, StringValues> myQUeryString = QueryHelpers.ParseQuery(query);

            DataSourceLoadOptionsParser.Parse(options, key => {
                if (myQUeryString.ContainsKey(key))
                {
                    return(myQUeryString[key]);
                }
                return(null);
            });
            return(options);
        }
        private DataSourceLoadOptions GetLoadParams()
        {
            DataSourceLoadOptions parameters = new DataSourceLoadOptions();
            var requestValues = Request.GetQueryNameValuePairs();

            DataSourceLoadOptionsParser.Parse(parameters, (key) =>
            {
                var items = requestValues.Where(i => i.Key == key);
                if (items.Count() > 0)
                {
                    return(items.FirstOrDefault().Value);
                }
                else
                {
                    return(null);
                }
            });
            parameters.PrimaryKey = new string[] { "OrderID" };
            return(parameters);
        }
예제 #11
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var loadOptions = new DataSourceLoadOptions();

            DataSourceLoadOptionsParser.Parse(loadOptions, key => bindingContext.ValueProvider.GetValue(key).FirstOrDefault());
            if (loadOptions.Filter != null)
            {
                for (int i = 0; i < loadOptions.Filter.Count; i++)
                {
                    if (loadOptions.Filter[i] != null)
                    {
                        var Type = Regex.Unescape(loadOptions.Filter[i].GetType().ToString());
                        // SearchPanel
                        if (Type == "Newtonsoft.Json.Linq.JArray")
                        {
                            JArray Temp = JArray.Parse(loadOptions.Filter[i].ToString());
                            Temp = JArray.Parse(Temp.ToString().Replace("ي", "ی").Replace("ك", "ک"));
                            loadOptions.Filter[i] = Temp;
                        }
                        // FilterRow
                        else
                        {
                            if (loadOptions.Filter[i].ToString().Contains("ي"))
                            {
                                loadOptions.Filter[i] = loadOptions.Filter[i].ToString().Replace("ي", "ی");
                            }
                            if (loadOptions.Filter[i].ToString().Contains("ك"))
                            {
                                loadOptions.Filter[i] = loadOptions.Filter[i].ToString().Replace("ك", "ک");
                            }
                        }
                    }
                }
            }
            bindingContext.Result = ModelBindingResult.Success(loadOptions);
            return(Task.CompletedTask);
        }