Ejemplo n.º 1
0
        public dynamic GetList(string _search, long nd, int rows, int?page, string sidx, string sord, string filters = "", int ParentId = 0)
        {
            // Construct where statement
            string strWhere = GeneralFunction.ConstructWhere(filters);
            string filter   = null;

            GeneralFunction.ConstructWhereInLinq(strWhere, out filter);
            if (filter == "")
            {
                filter = "true";
            }

            // Get Data
            var q = _fpMachineService.GetQueryable().Where(x => !x.IsDeleted).ToList();

            foreach (var model in q)
            {
                model.IsConnected = _fpMachineService.IsConnected(model.Id);
                if (model.IsConnected)
                {
                    _fpMachineService.RefreshObject(model, _fpUserService, _fpTemplateService);
                }
            }

            var query = (from model in (q.AsQueryable())
                         select new
            {
                model.Id,
                model.CompanyInfoId,
                CompanyInfo = model.CompanyInfo.Name,
                model.MachineNumber,
                model.MachineName,
                model.Password,
                model.IsAutoConnect,
                model.IsConnected,
                model.IsInSync,
                model.IsClearLogAfterDownload,
                model.CommType,
                model.EthernetIP,
                model.EthernetPort,
                model.EthernetMAC,
                model.SerialPort,
                model.SerialBaudRate,
                model.TimeZone,
                model.TimeZoneOffset,
                //model.ProductName,
                model.Platform,
                model.FirmwareVer,
                model.ArithmeticVer,
                model.SerialNumber,
                model.UserCount,
                model.AdminCount,
                model.PasswordCount,
                model.FPCount,
                model.FCCount,
                model.AttLogCount,
                model.CreatedAt,
                model.UpdatedAt,
            }).Where(filter).OrderBy(sidx + " " + sord);

            var list = query.AsEnumerable();

            var pageIndex    = Convert.ToInt32(page) - 1;
            var pageSize     = rows;
            var totalRecords = query.Count();
            var totalPages   = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

            // default last page
            if (totalPages > 0)
            {
                if (!page.HasValue)
                {
                    pageIndex = totalPages - 1;
                    page      = totalPages;
                }
            }

            list = list.Skip(pageIndex * pageSize).Take(pageSize);

            return(Json(new
            {
                total = totalPages,
                page = page,
                records = totalRecords,
                //rows = list,
                rows = (
                    from model in list
                    select new
                {
                    id = model.Id,
                    cell = new object[] {
                        model.Id,
                        model.CompanyInfoId,
                        model.CompanyInfo,
                        model.MachineNumber,
                        model.MachineName,
                        model.Password,
                        model.IsAutoConnect,
                        _fpMachineService.IsConnected(model.Id),   //model.IsConnected,
                        _fpMachineService.IsInSync(model.Id),      //model.IsInSync,
                        model.IsClearLogAfterDownload,
                        model.CommType,
                        model.EthernetIP,
                        model.EthernetPort,
                        model.EthernetMAC,
                        model.SerialPort,
                        model.SerialBaudRate,
                        model.TimeZone,
                        model.TimeZoneOffset,
                        //model.ProductName,
                        model.Platform,
                        model.FirmwareVer,
                        model.ArithmeticVer,
                        model.SerialNumber,
                        model.UserCount,
                        model.AdminCount,
                        model.PasswordCount,
                        model.FPCount,
                        model.FCCount,
                        model.AttLogCount,
                        model.CreatedAt,
                        model.UpdatedAt,
                    }
                }).ToArray()
            }, JsonRequestBehavior.AllowGet));
        }