public object JTable([FromBody] JTableModelCat jTablePara)
        {
            int intBeginFor = (jTablePara.CurrentPage - 1) * jTablePara.Length;

            if (string.IsNullOrEmpty(jTablePara.CatCode) && string.IsNullOrEmpty(jTablePara.CatName) && string.IsNullOrEmpty(jTablePara.CatType))
            {
                var query = from a in _context.UrencoAssetsCategorys

                            where a.IsDeleted == false
                            select new UrencoAssetsCategoryJtableModel
                {
                    Id        = a.Id,
                    CatCode   = a.CatCode,
                    CatName   = a.CatName,
                    CatParent = a.CatParent,
                    CatType   = _context.CommonSettings.FirstOrDefault(y => y.CodeSet == a.CatType).ValueSet ?? "",
                    Note      = a.Note
                };
                var data         = query.OrderBy(x => x.Id).AsNoTracking();
                var listFunction = data as IList <UrencoAssetsCategoryJtableModel> ?? data.ToList();

                var result = new List <UrencoAssetsCategoryJtableModel>();
                foreach (var func in listFunction.Where(x => string.IsNullOrEmpty(x.CatParent)).OrderBy(x => x.Id))
                {
                    var listChild = GetFunctionChild(listFunction, func.CatCode, ". . . ");

                    var function = new UrencoAssetsCategoryJtableModel();
                    function.Id        = func.Id;
                    function.CatName   = (listChild.Count > 0 ? "<i class='fa fa-folder-open icon-state-warning'></i> " : "<i class='fa fa-folder text-info'></i> ") + func.CatName;
                    function.CatCode   = func.CatCode;
                    function.CatType   = func.CatType;
                    function.CatParent = func.CatParent;
                    function.Note      = func.Note;
                    //function.TotalRow = listFunction.Count;
                    result.Add(function);
                    if (listChild.Count > 0)
                    {
                        result = result.Concat(listChild).ToList();
                    }
                }
                var count = query.Count();
                var res   = query.Skip(intBeginFor).Take(jTablePara.Length).ToList();
                var jdata = JTableHelper.JObjectTable(res, jTablePara.Draw, count, "Id", "CatCode", "CatName", "CatParent", "CatType", "Note");
                return(Json(jdata));
            }
            else
            {
                var query = from a in _context.UrencoAssetsCategorys
                            join b in _context.CommonSettings.Where(x => x.IsDeleted == false)
                            on a.CatType equals b.CodeSet
                            where a.IsDeleted == false &&
                            (string.IsNullOrEmpty(jTablePara.CatName) || a.CatName.ToLower().Contains(jTablePara.CatName.ToLower())) &&
                            (string.IsNullOrEmpty(jTablePara.CatType) || a.CatType.ToLower().Contains(jTablePara.CatType.ToLower())) &&
                            (string.IsNullOrEmpty(jTablePara.CatParent) || a.CatParent.ToLower().Contains(jTablePara.CatParent.ToLower()))
                            select new UrencoAssetsCategoryJtableModel
                {
                    Id        = a.Id,
                    CatCode   = a.CatCode,
                    CatName   = a.CatName,
                    CatParent = a.CatParent,
                    CatType   = b.ValueSet,
                    Note      = a.Note
                };
                int count = query.Count();
                var data  = query.AsQueryable().OrderUsingSortExpression(jTablePara.QueryOrderBy).Skip(intBeginFor).Take(jTablePara.Length);
                var jdata = JTableHelper.JObjectTable(data.ToList(), jTablePara.Draw, count, "Id", "CatCode", "CatName", "CatParent", "CatType", "Note");
                return(Json(jdata));
            }
        }
        public object JTable([FromBody] JTableModelCat jTablePara)
        {
            //int intBegin = (jTablePara.CurrentPage - 1) * jTablePara.Length;
            //var query = from a in _context.FundCatReptExpss
            //            where a.IsDeleted == false
            //            && (string.IsNullOrEmpty(jTablePara.CatCode) || a.CatCode.ToLower().Contains(jTablePara.CatCode.ToLower()))
            //            && (string.IsNullOrEmpty(jTablePara.CatName) || a.CatName.ToLower().Contains(jTablePara.CatName.ToLower()))
            //            && (string.IsNullOrEmpty(jTablePara.CatType) || a.CatType.ToLower().Contains(jTablePara.CatType.ToLower()))
            //            select new FundCatReptExpsJtableModel
            //            {

            //                Id = a.Id,
            //                CatCode = a.CatCode,
            //                CatName = a.CatName,
            //                CatParent = a.CatParent,
            //                CatType = a.CatType,
            //                Note = a.Note
            //            };
            //int count = query.Count();
            //var data = query.AsQueryable().OrderUsingSortExpression(jTablePara.QueryOrderBy).Skip(intBegin).Take(jTablePara.Length);
            //var jdata = JTableHelper.JObjectTable(data.ToList(), jTablePara.Draw, count, "Id", "CatCode", "CatName", "CatParent", "CatType", "Note");
            //return Json(jdata);
            int intBeginFor = (jTablePara.CurrentPage - 1) * jTablePara.Length;

            if (string.IsNullOrEmpty(jTablePara.CatCode) && string.IsNullOrEmpty(jTablePara.CatName) && string.IsNullOrEmpty(jTablePara.CatType))
            {
                var query = from a in _context.FundCatReptExpss
                            where a.IsDeleted == false
                            select new FundCatReptExpsJtableModel
                {
                    Id        = a.Id,
                    CatCode   = a.CatCode,
                    CatName   = a.CatName,
                    CatParent = a.CatParent,
                    CatType   = a.CatType,
                    Note      = a.Note
                };
                var data         = query.OrderBy(x => x.Id).AsNoTracking();
                var listFunction = data as IList <FundCatReptExpsJtableModel> ?? data.ToList();

                var result = new List <FundCatReptExpsJtableModel>();
                foreach (var func in listFunction.Where(x => string.IsNullOrEmpty(x.CatParent)).OrderBy(x => x.Id))
                {
                    var listChild = GetFunctionChild(listFunction, func.CatCode, ". . . ");

                    var function = new FundCatReptExpsJtableModel();
                    function.Id        = func.Id;
                    function.CatName   = (listChild.Count > 0 ? "<i class='fa fa-folder-open icon-state-warning'></i> " : "<i class='fa fa-folder text-info'></i> ") + func.CatName;
                    function.CatCode   = func.CatCode;
                    function.CatType   = func.CatType;
                    function.CatParent = func.CatParent;
                    function.Note      = func.Note;
                    //function.TotalRow = listFunction.Count;
                    result.Add(function);
                    if (listChild.Count > 0)
                    {
                        result = result.Concat(listChild).ToList();
                    }
                }
                var count = result.Count();
                var res   = result.Skip(intBeginFor).Take(jTablePara.Length).ToList();
                var jdata = JTableHelper.JObjectTable(res, jTablePara.Draw, count, "Id", "CatCode", "CatName", "CatParent", "CatType", "Note");
                return(Json(jdata));
            }
            else
            {
                var query = from a in _context.FundCatReptExpss
                            where a.IsDeleted == false &&
                            (string.IsNullOrEmpty(jTablePara.CatName) || a.CatName.ToLower().Contains(jTablePara.CatName.ToLower())) &&
                            (string.IsNullOrEmpty(jTablePara.CatType) || a.CatType.ToLower().Contains(jTablePara.CatType.ToLower())) &&
                            (string.IsNullOrEmpty(jTablePara.CatParent) || a.CatParent.ToLower().Contains(jTablePara.CatParent.ToLower()))
                            select new FundCatReptExpsJtableModel
                {
                    Id        = a.Id,
                    CatCode   = a.CatCode,
                    CatName   = a.CatName,
                    CatParent = a.CatParent,
                    CatType   = a.CatType,
                    Note      = a.Note
                };
                int count = query.Count();
                var data  = query.AsQueryable().OrderUsingSortExpression(jTablePara.QueryOrderBy).Skip(intBeginFor).Take(jTablePara.Length);
                var jdata = JTableHelper.JObjectTable(data.ToList(), jTablePara.Draw, count, "Id", "CatCode", "CatName", "CatParent", "CatType", "Note");
                return(Json(jdata));
            }
        }