public IList <TEntity> LoadDataSourceLogic <TEntity>(DataServiceModel oDSM, string ClassName = "", string Method = "") where TEntity : class
        {
            IList <TEntity> listData = null;

            if (!string.IsNullOrEmpty(ClassName))
            {
                //listData = LVDataHelper.Execute<IList<TEntity>>(ClassName.Substring(0, ClassName.LastIndexOf(".")), ClassName.Substring(ClassName.LastIndexOf(".") + 1, ClassName.Length - ClassName.LastIndexOf(".") - 1), Method, "", oDSM);
            }
            else
            {
                var stop = typeof(TEntity).GetProperty("Stop");
                if (stop != null)
                {
                    if (!string.IsNullOrEmpty(oDSM.Predicate))
                    {
                        oDSM.Predicate = "(" + oDSM.Predicate + ")" + "&&Stop=false";
                    }
                    else
                    {
                        oDSM.Predicate = "Stop=false";
                    }
                }
                DataServices ds = new DataServices();

                listData = ds.GetData(oDSM) as IList <TEntity>;
            }
            return(listData);
        }
        private IHttpActionResult _LoadDataSource(string entityName, int pageNum, int pageSize, string tableFields, string predicate, string valuePredicate, string fieldSorting, string sortDirection, bool pageLoading, string queryString = "", string ClassName = "", string Method = "")
        {
            DataServiceModel dataModel = new DataServiceModel();

            dataModel.TypeName            = entityName;
            dataModel.BUID                = "";
            dataModel.UserID              = "";
            dataModel.PageNum             = pageNum;
            dataModel.PageSize            = pageSize;
            dataModel.IsViewBUHierarchy   = false;
            dataModel.Predicate           = predicate;
            dataModel.DataValue           = valuePredicate == null ? new string[] { } : valuePredicate.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
            dataModel.IsPageLoading       = pageLoading;
            dataModel.IsSetDataPermission = false;
            // dataModel.QueryString = queryString;
            if (String.IsNullOrEmpty(fieldSorting) == false)
            {
                dataModel.SortColumns = fieldSorting.Split(';');
            }

            if (String.IsNullOrEmpty(sortDirection) == false)
            {
                dataModel.SortDirections = sortDirection.Split(';');
            }

            if (String.IsNullOrEmpty(tableFields) == false)
            {
                string[] fields   = tableFields.Split(';');
                string   selector = string.Empty;
                for (int i = 0; i < fields.Length; i++)
                {
                    if (selector == string.Empty)
                    {
                        selector = "it." + fields[i] + " as " + fields[i];
                    }
                    else
                    {
                        selector += "," + "it." + fields[i] + " as " + fields[i];
                    }
                }

                dataModel.Selector = String.Format("new({0})", selector);
            }

            Type oType    = PocoHelper.GetTypeFromString(dataModel.TypeName);
            var  listData = DynamicAssembly.InvokeGenericMethod(oType, this, "LoadDataSourceLogic", dataModel, ClassName, Method);


            string selectString = "new (";

            var listproperty = tableFields.Split(';');

            foreach (var item in listproperty)
            {
                var it = item.Trim();
                if (selectString != "new (")
                {
                    selectString = selectString + ",";
                }

                selectString = selectString + it + " as " + it;
            }
            selectString = selectString + ")";

            if (listData != null)
            {
                listData = ((IList)listData).AsQueryable().Select(selectString, null);
            }

            return(Json(listData));
        }