Пример #1
0
        public void ApplyDataFilter(IDataFilter dataFilter, string controller, string view, string lookupContextController, string lookupContextView, string lookupContextFieldName)
        {
            if (dataFilter == null)
            {
                return;
            }
            if (_filter == null)
            {
                _filter = new string[0];
            }
            IDataFilter2 dataFilter2 = null;

            if (typeof(IDataFilter2).IsInstanceOfType(dataFilter))
            {
                dataFilter2 = ((IDataFilter2)(dataFilter));
                dataFilter2.AssignContext(controller, view, lookupContextController, lookupContextView, lookupContextFieldName);
            }
            List <string> newFilter = new List <string>(_filter);

            _customFilter = new SortedDictionary <string, object>();
            if (dataFilter2 != null)
            {
                dataFilter2.Filter(controller, view, _customFilter);
            }
            else
            {
                dataFilter.Filter(_customFilter);
            }
            foreach (string key in _customFilter.Keys)
            {
                object v = _customFilter[key];
                if ((v == null) || !(v.GetType().IsArray))
                {
                    v = new object[] {
                        v
                    }
                }
                ;
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("{0}:", key);
                foreach (object item in ((Array)(v)))
                {
                    if (dataFilter2 != null)
                    {
                        sb.Append(item);
                    }
                    else
                    {
                        sb.AppendFormat("={0}", item);
                    }
                    sb.Append(Convert.ToChar(0));
                }
                newFilter.Add(sb.ToString());
            }
            _originalFilter = _filter;
            _filter         = newFilter.ToArray();
        }
Пример #2
0
        public virtual JsonResult LoadPageItems(DTParameters param)
        {
            var filtered = DataFilter.Filter <TEntity, TOperationContext>(IoC.Resolve <TOperationContext>(), param.Search.Value,
                                                                          param.SortOrder, param.Start,
                                                                          param.Length,
                                                                          out var totalCount).ToList();

            var finalResult = new DTResult <TEntity>
            {
                Draw            = param.Draw,
                Data            = filtered.ToList(),
                RecordsFiltered = totalCount,
                RecordsTotal    = filtered.Count
            };

            return(Json(finalResult));
        }