public PageIQueryableResult <method> GetPageList([FromUri] PageParam param)
        {
            var deletedState = (int)DataState.Deleted;

            var query = db.method.AsNoTracking().Where(a => a.State != deletedState);

            if (!string.IsNullOrEmpty(param.keyword))
            {
                query = query.Where(a => a.MethodName.Contains(param.keyword) || a.Description.Contains(param.keyword));
            }

            var count = query.Count();

            var skip = (param.page - 1) * param.limit;

            var list = query.OrderByDescending(a => a.CreateTime).Skip(() => skip).Take(param.limit);


            var result = new PageIQueryableResult <method>
            {
                code    = 0,
                message = "获取方法成功",
                count   = count,
                data    = list,
            };

            return(result);
        }
        public PageIQueryableResult <data_source_fields> GetPageList([FromUri] FieldsQueryParam param)
        {
            var query = db.data_source_fields.AsQueryable().Where(a => a.UserId == 1);

            if (!string.IsNullOrEmpty(param.keyword))
            {
                query = query.Where(a => a.FieldName.Contains(param.keyword) || a.FieldName.Contains(param.keyword));
            }
            if (param.dataSource.HasValue)
            {
                query = query.Where(a => a.DataSourceId == param.dataSource.Value);
            }

            var count = query.Count();

            var skip = (param.page - 1) * param.limit;

            var list = query.OrderByDescending(a => a.Id).Skip(() => skip).Take(param.limit);


            var result = new PageIQueryableResult <data_source_fields>
            {
                code    = 0,
                message = "获取数据源成功",
                count   = count,
                data    = list,
            };

            return(result);
        }
        public PageIQueryableResult <FieldConfigView> GetFieldConfigViews([FromUri] FieldsQueryParam param)
        {
            var queryable =
                from e in db.data_source_fields
                join d in db.work_order on e.DataSourceId equals d.InportSourceId into dd
                from d in dd.DefaultIfEmpty()
                join a in db.field_mapping on d.OrderId equals a.OrderId into aa
                from a1 in aa.DefaultIfEmpty()
                select new FieldConfigView
            {
                Id             = a1.Id,
                FieldIn        = a1.FieldIn ?? e.FieldName,
                FieldComment   = e.FieldComment,
                FieldType      = e.FieldType,
                FieldOut       = a1.FieldOut,
                InportSourceId = e.DataSourceId,
                Methods        = (
                    from b in db.field_method_mapping
                    join c in db.method on b.MethodId equals c.Id
                    where b.FieldConfigId == a1.Id && a1 != null
                    select new MethodView
                {
                    Id = c.Id,
                    AssemblyPath = c.AssemblyPath,
                    Description = c.Description,
                    IsStatic = c.IsStatic,
                    MethodName = c.MethodName,
                    Params = c.Params,
                    ReturnType = c.ReturnType,
                    TypeCode = c.TypeCode,
                    TypeFillName = c.TypeFillName
                }
                    )
            };

            if (param.dataSource.HasValue)
            {
                queryable = queryable.Where(a => a.InportSourceId == param.dataSource);
            }

            var count = queryable.Count();
            var skip  = (param.page - 1) * param.limit;

            var pageList = queryable.OrderByDescending(a => a.Id).Skip(() => skip).Take(param.limit);


            var result = new PageIQueryableResult <FieldConfigView>
            {
                code    = 0,
                message = "获取工单成功",
                count   = count,
                data    = pageList,
            };

            return(result);
        }
        public PageIQueryableResult <object> GetFields(int id)
        {
            var query = db.data_source_fields.AsNoTracking()
                        .Where(a => a.UserId == 1 && a.DataSourceId == id).Select(a => new
            {
                Id   = a.FieldName,
                Text = a.FieldComment,
                Type = a.FieldType,
            });

            var result = new PageIQueryableResult <object>
            {
                data = query
            };

            return(result);
        }
        public PageIQueryableResult <object> GetSelectData()
        {
            var deletedState = (int)DataState.Deleted;
            var userId       = 1;
            var query        = db.data_source.AsNoTracking().Where(a => a.State != deletedState && a.UserId == userId).Select(a => new
            {
                a.Id,
                a.DataSourceName,
                a.TableName,
                a.TypeCode,
                a.Link,
            });
            var result = new PageIQueryableResult <object>();

            result.code = 0;
            result.data = query;
            return(result);
        }
        public PageIQueryableResult <data_source> GetPageList([FromUri] DataSourceQueryParam param)
        {
            var deletedState = (int)DataState.Deleted;
            var userId       = 1;
            var query        = db.data_source.AsNoTracking().Where(a => a.State != deletedState && a.UserId == userId);

            if (!string.IsNullOrEmpty(param.keyword))
            {
                query = query.Where(a => a.Host.Contains(param.keyword));
            }
            if (param.startTime.HasValue)
            {
                query = query.Where(a => a.CreateTime >= param.startTime.Value);
            }
            if (param.endTime.HasValue)
            {
                query = query.Where(a => a.CreateTime <= param.endTime.Value);
            }
            if (!string.IsNullOrEmpty(param.type))
            {
                query = query.Where(a => a.TypeCode == param.type);
            }

            var count = query.Count();

            var skip = (param.page - 1) * param.limit;

            var list = query.OrderByDescending(a => a.CreateTime).Skip(() => skip).Take(param.limit);


            var result = new PageIQueryableResult <data_source>
            {
                code    = 0,
                message = "获取数据源成功",
                count   = count,
                data    = list,
            };

            return(result);
        }