private IList <SortDescriptor> BuildFrom(CustomReportBaseDataViewModel entity)
        {
            if (this.Request.Params.AllKeys.Contains("sort[0][field]"))
            {
                var dir = ListSortDirection.Ascending;
                if (this.Request.Params.AllKeys.Contains("sort[0][dir]"))
                {
                    dir = this.Request.Params.GetValues("sort[0][dir]")[0] == "desc"
                        ? ListSortDirection.Descending
                        : ListSortDirection.Ascending;
                }

                return(new List <SortDescriptor>()
                {
                    new SortDescriptor(this.Request.Params.GetValues("sort[0][field]")[0],
                                       dir)
                });
            }
            else
            {
                return(new List <SortDescriptor>()
                {
                    new SortDescriptor(entity.SortField,
                                       entity.SortOrder)
                });
            }
        }
        private IEnumerable <CustomReportFilterViewModel> GetFilters(CustomReportView_ViewModel model, CustomReportBaseDataViewModel it)
        {
            Regex rg = new Regex(@"\(.*?\)");

            model.ValuesListString = rg.Replace(model.ValuesListString, "").Replace(" GMT+", ".").Replace(" GMT ", ".");
            model.ValuesList       = model.ValuesListString.Split(';').ToList();
            model.IdsList          = model.IdsListString.Split(';').Select(x => long.Parse(x)).ToList();
            var filters     = model.IdsList.Zip(model.ValuesList, (i, v) => new { Id = i, Value = v }).Where(x => !String.IsNullOrEmpty(x.Value)).ToList();
            var initFilters = it.GetAllAvailableFilters(Db);
            var res         = from f in filters
                              join i in initFilters
                              on f.Id equals i.Id
                              select new CustomReportFilterViewModel()
            {
                Id = i.Id,

                Field     = i.Field,
                Operation = i.Operation,

                ValueString = f.Value,
                Value       = SystemTypeHelper.GetObjectByString(f.Value, i.Field.DataType, i.Multi)
            };

            return(res.Where(x => !String.IsNullOrEmpty(x.ValueString)));
        }