Exemple #1
0
        public virtual JObject GetESBObjectParams(HttpContext context)
        {
            YZRequest   request    = new YZRequest(context);
            String      objectName = request.GetString("ESB");
            FlowDataSet dataset    = new FlowDataSet();

            //获取参数
            string[]       strs       = objectName.Split(':');
            SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo     sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);


            FlowDataTable table = new FlowDataTable();

            dataset.Tables.Add(table);
            SourceVisit       visit     = new SourceVisit(sourceInfo);
            List <ColumnInfo> paramList = visit.GetParameter();

            if (paramList != null && paramList.Count > 0)
            {
                foreach (var item in visit.GetParameter())
                {
                    table.Columns.Add(new FlowDataColumn(item.rename));
                }
            }
            JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType");

            rv["supportOp"] = false;
            return(rv);
        }
Exemple #2
0
        /// <summary>
        /// 返回数据源列表
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JArray GetSourceList(HttpContext context)
        {
            JArray array            = new JArray();
            SourceInfoCollection rv = SourceInfoManager.GetSourceList();

            return(JArray.FromObject(rv));
        }
Exemple #3
0
        /// <summary>
        /// 测试数据源
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject TestSource(HttpContext context)
        {
            JObject         obj        = new JObject();
            YZRequest       request    = new YZRequest(context);
            int             sourceId   = request.GetInt32("sourceId");
            SourceInfo      sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
            QueryDepictInfo info       = JObject.Parse(sourceInfo.sourceStr).ToObject <QueryDepictInfo>();
            StreamReader    reader     = new StreamReader(context.Request.InputStream);

            using (JsonTextReader streamReader = new JsonTextReader(reader))
            {
                //获取参数配置
                JsonSerializer serializer = new JsonSerializer();
                JArray         array      = serializer.Deserialize(streamReader) as JArray;
                if (array != null && array.Count > 0)
                {
                    foreach (var item in array)
                    {
                        ColumnInfo column = info.parameter.First(n => n.columnName == item["columnName"].ToString());
                        column.defaultValue = item["defaultValue"].ToString();
                    }
                }
            }
            DataTable dt      = GetResult(info, sourceInfo.connectInfo);
            JArray    results = new JArray();

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    JObject item = new JObject();
                    foreach (DataColumn column in dt.Columns)
                    {
                        item[column.ColumnName] = row[column.ColumnName].ToString();
                    }
                    results.Add(item);
                }
                obj["children"] = results;
            }
            else
            {
                JObject item = new JObject();
                foreach (DataColumn column in dt.Columns)
                {
                    item[column.ColumnName] = "";
                }
                results.Add(item);
                obj["children"] = results;
            }
            obj["children"] = results;
            //执行数据
            obj[YZJsonProperty.success] = true;
            return(obj);
        }
Exemple #4
0
        public JObject DeleteSource(HttpContext context)
        {
            JObject   obj      = new JObject();
            YZRequest request  = new YZRequest(context);
            int       sourceId = request.GetInt32("sourceId");

            SourceInfoManager.DeleteSource(sourceId);
            obj[YZJsonProperty.success]      = true;
            obj[YZJsonProperty.errorMessage] = "删除成功!";
            return(obj);
        }
Exemple #5
0
        /// <summary>
        /// 返回源详细信息
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject GetSourceInfo(HttpContext context)
        {
            YZRequest       request  = new YZRequest(context);
            int             sourceId = request.GetInt32("sourceId");
            SourceInfo      entity   = SourceInfoManager.GetSourceInfo(sourceId);
            JObject         obj      = JObject.FromObject(entity);
            QueryDepictInfo info     = JObject.Parse(entity.sourceStr).ToObject <QueryDepictInfo>();

            obj["sourceStr"]            = BizCommon.GetQueryDepictInfoJson(info);
            obj[YZJsonProperty.success] = true;
            return(obj);
        }
Exemple #6
0
        public virtual BPMObjectNameCollection GetESBObjects(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            BPMObjectNameCollection rv   = new BPMObjectNameCollection();
            SourceInfoCollection    list = SourceInfoManager.GetSourceList();

            foreach (var item in list.ToArray())
            {
                rv.Add(string.Format("{0}:{1}", item.sourceType.ToString(), item.sourceName));
            }
            return(rv);
        }
Exemple #7
0
        /// <summary>
        /// 判断数据源名称是否唯一
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject IsSourceNameOnly(HttpContext context)
        {
            YZRequest      request    = new YZRequest(context);
            string         sourceName = request.GetString("sourceName");
            SourceTypeEnum sourceType = request.GetEnum <SourceTypeEnum>("sourceType");
            JObject        obj        = new JObject();
            bool           falg       = SourceInfoManager.IsSourceRepeat(sourceName, sourceType);

            if (falg)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!";
            }
            else
            {
                obj[YZJsonProperty.success] = true;
            }
            return(obj);
        }
Exemple #8
0
        public virtual JObject GetUserDataESB(BPMConnection cn, JObject request)
        {
            string esbObjectName         = (string)request["ESB"];
            YZDSFilterCollection filters = request["Filter"] != null ? request["Filter"].ToObject <YZDSFilterCollection>() : null;

            //获取参数
            string[]                strs       = esbObjectName.Split(':');
            SourceTypeEnum          sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo              sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);
            SourceVisit             visit      = new SourceVisit(sourceInfo);
            BPMObjectNameCollection names      = new BPMObjectNameCollection();
            List <ColumnInfo>       values     = new List <ColumnInfo>();

            if (filters != null)
            {
                foreach (KeyValuePair <string, YZDSFilter> filter in filters)
                {
                    names.Add(filter.Key);
                    values.Add(new ColumnInfo()
                    {
                        columnName   = filter.Key,
                        defaultValue = filter.Value.value
                    });
                }

                foreach (ColumnInfo column in visit.GetParameter())
                {
                    if (!names.Contains(column.rename))
                    {
                        names.Add(column.rename);
                        values.Add(new ColumnInfo()
                        {
                            columnName   = column.rename,
                            defaultValue = column.defaultValue
                        });
                    }
                }
            }
            DataTable     dt    = visit.GetResult(values);
            FlowDataTable table = new FlowDataTable(dt);

            return(this.ToResult(table, false));
        }
Exemple #9
0
        public virtual DataTable GetESBDataNoPaged(HttpContext context)
        {
            YZRequest            request       = new YZRequest(context);
            string               esbObjectName = request.GetString("ESB");
            YZDSFilterCollection filters       = JObject.Parse(request.GetString("Filter", "{}")).ToObject <YZDSFilterCollection>();

            //获取参数
            string[]                strs       = esbObjectName.Split(':');
            SourceTypeEnum          sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo              sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);
            SourceVisit             visit      = new SourceVisit(sourceInfo);
            BPMObjectNameCollection names      = new BPMObjectNameCollection();
            List <ColumnInfo>       values     = new List <ColumnInfo>();

            if (filters != null)
            {
                foreach (KeyValuePair <string, YZDSFilter> filter in filters)
                {
                    names.Add(filter.Key);
                    values.Add(new ColumnInfo()
                    {
                        columnName   = filter.Key,
                        defaultValue = filter.Value.value
                    });
                }

                foreach (ColumnInfo column in visit.GetParameter())
                {
                    if (!names.Contains(column.rename))
                    {
                        names.Add(column.rename);
                        values.Add(new ColumnInfo()
                        {
                            columnName   = column.rename,
                            defaultValue = column.defaultValue
                        });
                    }
                }
            }

            return(visit.GetResult(values));
        }
Exemple #10
0
        public virtual JObject GetESBObjectSchema(HttpContext context)
        {
            YZRequest   request    = new YZRequest(context);
            String      objectName = request.GetString("ESB");
            FlowDataSet dataset    = new FlowDataSet();

            //获取参数
            string[]       strs       = objectName.Split(':');
            SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo     sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);

            FlowDataTable table = new FlowDataTable();

            dataset.Tables.Add(table);
            SourceVisit visit = new SourceVisit(sourceInfo);

            foreach (var item in visit.GetSchema())
            {
                table.Columns.Add(new FlowDataColumn(item.rename, typeof(string)));
            }

            return(YZJsonHelper.SerializeSchema(dataset, "", "DataType"));
        }
Exemple #11
0
        /// <summary>
        /// 保存数据源
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject SaveSource(HttpContext context)
        {
            JObject obj = new JObject();

            try
            {
                YZRequest request = new YZRequest(context);
                //操作类型
                string joinType   = request.GetString("joinType");
                string sourceName = request.GetString("sourceName");
                string caption    = request.GetString("caption", "");
                int    connectId  = request.GetInt32("connectId");
                int    sourceId   = request.GetInt32("sourceId", 0);
                string queryStr   = request.GetString("queryStr");
                //判断是否重名
                bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.Oracle, sourceId);
                if (isNameOnly)
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!";
                    return(obj);
                }
                //执行
                ConnectInfo     con    = ConnectInfoManager.GetConnectInfo(connectId);
                OracleLogin     login  = JObject.Parse(con.connectStr).ToObject <OracleLogin>();
                ISourceHandle   handle = new OracleHandle(login);
                QueryDepictInfo info   = new QueryDepictInfo();
                info.query = queryStr;

                StreamReader reader = new StreamReader(context.Request.InputStream);
                using (JsonTextReader streamReader = new JsonTextReader(reader))
                {
                    //获取参数配置
                    JsonSerializer serializer     = new JsonSerializer();
                    JArray         array          = serializer.Deserialize(streamReader) as JArray;
                    JObject        jo             = array[0] as JObject;
                    JArray         parameterArray = jo["parameter"] as JArray;
                    if (parameterArray != null && parameterArray.Count > 0)
                    {
                        List <ColumnInfo> paramList = new List <ColumnInfo>();
                        foreach (var item in parameterArray)
                        {
                            ColumnInfo column = new ColumnInfo();
                            column.columnName   = item["columnName"].ToString();
                            column.rename       = item["rename"].ToString();
                            column.isShow       = item["isShow"].ToString().ToUpper().Equals("TRUE") ? 1 : 0;
                            column.defaultValue = item["defaultValue"].ToString();
                            paramList.Add(column);
                        }
                        info.parameter = paramList;
                    }

                    JArray schemaArray = jo["schema"] as JArray;
                    if (schemaArray != null && schemaArray.Count > 0)
                    {
                        List <ColumnInfo> schemaList = new List <ColumnInfo>();
                        foreach (var item in schemaArray)
                        {
                            ColumnInfo column = new ColumnInfo();
                            column.columnName   = item["columnName"].ToString();
                            column.rename       = item["rename"].ToString();
                            column.isShow       = item["isShow"].ToString().ToUpper().Equals("TRUE") ? 1 : 0;
                            column.defaultValue = item["defaultValue"].ToString();
                            schemaList.Add(column);
                        }
                        info.schema = schemaList;
                    }
                }
                if (joinType.ToUpper().Equals("THEEDIT"))
                {
                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    sourceInfo.sourceName = sourceName;
                    sourceInfo.caption    = caption;
                    sourceInfo.updateTime = DateTime.Now;
                    sourceInfo.sourceStr  = JObject.FromObject(info).ToString();
                    SourceInfoManager.EditSource(sourceInfo);
                }
                else
                {
                    SourceInfo sourceInfo = new SourceInfo();
                    sourceInfo.sourceName  = sourceName;
                    sourceInfo.sourceType  = SourceTypeEnum.Oracle;
                    sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    sourceInfo.caption     = caption;
                    sourceInfo.isvalid     = true;
                    sourceInfo.createTime  = DateTime.Now;
                    sourceInfo.updateTime  = DateTime.Now;
                    sourceInfo.sourceStr   = JObject.FromObject(info).ToString();
                    SourceInfoManager.AddSource(sourceInfo);
                }
                obj[YZJsonProperty.success]      = true;
                obj[YZJsonProperty.errorMessage] = "保存成功";
                return(obj);
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.Message.ToString();
                return(obj);
            }
        }
Exemple #12
0
        /// <summary>
        /// 连接到服务器
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject JoinService(HttpContext context)
        {
            JObject obj = new JObject();

            try
            {
                List <ElementInfo> structList;
                OracleLogin        login;
                ISourceHandle      handle;

                YZRequest request  = new YZRequest(context);
                string    joinType = request.GetString("jointype");

                if (joinType.ToUpper().Equals("THEADD"))
                {
                    //新增模式
                    int         connectId   = request.GetInt32("connectId");
                    ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    //生成连接对象
                    login = JObject.Parse(connectInfo.connectStr).ToObject <OracleLogin>();
                    //实例化连接对象
                    handle = new OracleHandle(login);
                    //获取接口集合
                    structList = handle.GetElementList();
                }
                else
                {
                    //编辑模式
                    int sourceId = request.GetInt32("sourceId");
                    //模糊查询表或视图的名称
                    string name = request.GetString("name", "");

                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    //生成连接对象
                    login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <OracleLogin>();
                    //实例化连接对象
                    handle = new OracleHandle(login);
                    //获取接口集合
                    structList = handle.GetElementList(name);
                }

                if (structList != null && structList.Count > 0)
                {
                    List <ElementInfo> tableList  = structList.Where(n => n.elementType.Trim().ToUpper().Equals("U")).ToList();
                    JArray             tableArray = new JArray();
                    foreach (ElementInfo item in tableList)
                    {
                        JObject jo = new JObject();
                        jo["name"] = item.elementName;
                        tableArray.Add(jo);
                    }

                    List <ElementInfo> viewList  = structList.Where(n => n.elementType.Trim().ToUpper().Equals("V")).ToList();
                    JArray             viewArray = new JArray();
                    foreach (ElementInfo item in viewList)
                    {
                        JObject jo = new JObject();
                        jo["name"] = item.elementName;

                        viewArray.Add(jo);
                    }
                    obj["table"] = tableArray;
                    obj["view"]  = viewArray;
                    obj[YZJsonProperty.success] = true;
                    return(obj);
                }
                else
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "没有可供查询的表或视图!";
                    return(obj);
                }
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.ToString();
                return(obj);
            }
        }
Exemple #13
0
        /// <summary>
        /// 保存数据源
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject SaveSource(HttpContext context)
        {
            JObject   obj     = new JObject();
            YZRequest request = new YZRequest(context);

            try
            {
                //操作类型
                string joinType   = request.GetString("joinType");
                string sourceName = request.GetString("sourceName");
                string caption    = request.GetString("caption", "");
                int    connectId  = request.GetInt32("connectId");
                int    sourceId   = request.GetInt32("sourceId", 0);
                //判断是否重名
                bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.SAP, sourceId);
                if (isNameOnly)
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!";
                    return(obj);
                }

                ConnectInfo   con    = ConnectInfoManager.GetConnectInfo(connectId);
                SapLogin      login  = JObject.Parse(con.connectStr).ToObject <SapLogin>();
                ISourceHandle handle = new SapHandle(login);

                //获取接口信息
                string          rfcName = request.GetString("rfcName");
                QueryDepictInfo info    = handle.GetQueryInfo(rfcName);

                StreamReader reader = new StreamReader(context.Request.InputStream);
                using (JsonTextReader streamReader = new JsonTextReader(reader))
                {
                    //获取参数配置
                    JsonSerializer serializer     = new JsonSerializer();
                    JArray         array          = serializer.Deserialize(streamReader) as JArray;
                    JObject        jo             = array[0] as JObject;
                    JArray         parameterArray = jo["parameter"] as JArray;
                    //清空输入参数原始值
                    CommonHandle.ClearParameter(info.parameter);
                    //配置输入参数值
                    foreach (JObject item in parameterArray)
                    {
                        ColumnInfo column = info.parameter.First(n => n.columnName == item["columnName"].ToString());
                        SetParameterValue(column, item);
                    }
                    JArray schemaArray = jo["schema"] as JArray;
                    //清空输出参数原始值
                    CommonHandle.ClearParameter(info.schema);
                    //配置输出参数值
                    foreach (JObject item in schemaArray)
                    {
                        ColumnInfo columnInfo = info.schema.First(n => n.columnName == item["columnName"].ToString());
                        SetOutputInfo(columnInfo, item);
                    }
                }
                if (joinType.ToUpper().Equals("THEEDIT"))
                {
                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    sourceInfo.sourceName = sourceName;
                    sourceInfo.caption    = caption;
                    sourceInfo.updateTime = DateTime.Now;
                    sourceInfo.sourceStr  = JObject.FromObject(info).ToString();
                    SourceInfoManager.EditSource(sourceInfo);
                }
                else
                {
                    SourceInfo sourceInfo = new SourceInfo();
                    sourceInfo.sourceName  = sourceName;
                    sourceInfo.sourceType  = SourceTypeEnum.SAP;
                    sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    sourceInfo.caption     = caption;
                    sourceInfo.isvalid     = true;
                    sourceInfo.createTime  = DateTime.Now;
                    sourceInfo.updateTime  = DateTime.Now;
                    sourceInfo.sourceStr   = JObject.FromObject(info).ToString();
                    SourceInfoManager.AddSource(sourceInfo);
                }
                obj[YZJsonProperty.success]      = true;
                obj[YZJsonProperty.errorMessage] = "保存成功";
                return(obj);
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.ToString();
                return(obj);
            }
        }
Exemple #14
0
        /// <summary>
        /// 连接服务
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject JoinService(HttpContext context)
        {
            JObject obj = new JObject();

            try
            {
                List <ElementInfo> structList;
                SapLogin           login;
                ISourceHandle      handle;

                YZRequest request  = new YZRequest(context);
                string    joinType = request.GetString("jointype");

                if (joinType.ToUpper().Equals("THEADD"))
                {
                    //新增模式
                    int         connectId   = request.GetInt32("connectId");
                    string      rfcName     = request.GetString("rfcName", "");
                    ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    //生成连接对象
                    login = JObject.Parse(connectInfo.connectStr).ToObject <SapLogin>();
                    //实例化连接对象
                    handle     = new SapHandle(login);
                    structList = handle.GetElementList(rfcName);
                }
                else
                {
                    //编辑模式
                    int    sourceId = request.GetInt32("sourceId");
                    string rfcName  = request.GetString("rfcName", "");

                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    //生成连接对象
                    login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <SapLogin>();
                    //实例化连接对象
                    handle = new SapHandle(login);
                    //获取接口集合
                    structList = handle.GetElementList(rfcName);
                }

                if (structList != null && structList.Count > 0)
                {
                    JArray funcArray = new JArray();
                    foreach (var item in structList)
                    {
                        JObject jo = new JObject();
                        jo["name"] = item.elementName;
                        funcArray.Add(jo);
                    }

                    obj["funcarray"]            = funcArray;
                    obj[YZJsonProperty.success] = true;
                }
                else
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "没有可供调用的接口!";
                    return(obj);
                }
                return(obj);
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.Message;
                return(obj);
            }
        }
Exemple #15
0
        /// <summary>
        /// 连接服务
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject JoinService(HttpContext context)
        {
            JObject obj = new JObject();

            try
            {
                List <ElementInfo> structList;
                ExcelLogin         login;
                ISourceHandle      handle;
                QueryDepictInfo    info;

                YZRequest request  = new YZRequest(context);
                string    joinType = request.GetString("jointype");

                if (joinType.ToUpper().Equals("THEADD"))
                {
                    //新增模式
                    int         connectId   = request.GetInt32("connectId");
                    ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    //生成连接对象
                    login = JObject.Parse(connectInfo.connectStr).ToObject <ExcelLogin>();
                    //实例化连接对象
                    handle = new ExcelHandle(login);
                    //获取接口集合
                    structList = handle.GetElementList();
                    info       = new QueryDepictInfo();
                }
                else
                {
                    //编辑模式
                    int sourceId = request.GetInt32("sourceId");
                    //模糊查询表或视图的名称
                    string sheetName = request.GetString("sheetName", "");

                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    //生成连接对象
                    login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <ExcelLogin>();
                    //实例化连接对象
                    handle = new ExcelHandle(login);
                    //获取接口集合
                    structList = handle.GetElementList(sheetName);
                    info       = JObject.Parse(sourceInfo.sourceStr).ToObject <QueryDepictInfo>();
                }
                //获取接口集合
                if (structList != null && structList.Count > 0)
                {
                    JArray sheetArray = new JArray();
                    foreach (var item in structList)
                    {
                        JObject jo = new JObject();
                        jo["name"] = item.elementName;
                        sheetArray.Add(jo);
                    }

                    obj["sheetArray"]           = sheetArray;
                    obj["schema"]               = GetColumnJson(info);
                    obj[YZJsonProperty.success] = true;
                }
                else
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "没有可供查询的sheet表!";
                    return(obj);
                }
                return(obj);
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.ToString();
                return(obj);
            }
        }
Exemple #16
0
        /// <summary>
        /// 保存数据源
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public JObject SaveSource(HttpContext context)
        {
            JObject obj = new JObject();

            try
            {
                YZRequest request    = new YZRequest(context);
                string    joinType   = request.GetString("joinType");
                string    sourceName = request.GetString("sourceName");
                string    caption    = request.GetString("caption", "");
                int       connectId  = request.GetInt32("connectId");
                int       sourceId   = request.GetInt32("sourceId", 0);
                string    sheetName  = request.GetString("sheetName");
                string    titleIndex = request.GetString("titleIndex");
                string    query      = string.Format("{0}|{1}", sheetName, titleIndex);
                //判断是否重名
                bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.Excel, sourceId);
                if (isNameOnly)
                {
                    obj[YZJsonProperty.success]      = false;
                    obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!";
                    return(obj);
                }

                ConnectInfo     connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                ExcelLogin      login       = JObject.Parse(connectInfo.connectStr).ToObject <ExcelLogin>();
                ISourceHandle   handle      = new ExcelHandle(login);
                QueryDepictInfo info        = handle.GetQueryInfo(sheetName);
                info.query = query;
                info       = handle.GetQueryInfo(info);
                StreamReader reader = new StreamReader(context.Request.InputStream);
                using (JsonTextReader streamReader = new JsonTextReader(reader))
                {
                    //获取参数配置
                    JsonSerializer    serializer = new JsonSerializer();
                    JArray            array      = serializer.Deserialize(streamReader) as JArray;
                    List <ColumnInfo> param      = new List <ColumnInfo>();
                    foreach (var item in array)
                    {
                        if (item["inputIsShow"].ToString().ToUpper().Equals("TRUE"))
                        {
                            ColumnInfo column = new ColumnInfo();
                            column.columnName   = item["columnName"].ToString();
                            column.columnType   = item["columnType"].ToString();
                            column.defaultValue = item["defaultValue"].ToString();
                            column.isShow       = 1;
                            column.rename       = item["inputRename"].ToString();
                            param.Add(column);
                        }

                        ColumnInfo schemaColumn = info.schema.First(n => n.columnName == item["columnName"].ToString());

                        if (item["outputIsShow"].ToString().ToUpper().Equals("TRUE"))
                        {
                            schemaColumn.rename = item["outputRename"].ToString();
                            schemaColumn.isShow = 1;
                        }
                        else
                        {
                            schemaColumn.isShow = 0;
                        }
                    }

                    info.parameter = param;
                }

                if (joinType.ToUpper().Equals("THEEDIT"))
                {
                    SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId);
                    sourceInfo.sourceName = sourceName;
                    sourceInfo.caption    = caption;
                    sourceInfo.updateTime = DateTime.Now;
                    sourceInfo.sourceStr  = JObject.FromObject(info).ToString();
                    SourceInfoManager.EditSource(sourceInfo);
                }
                else
                {
                    SourceInfo sourceInfo = new SourceInfo();
                    sourceInfo.sourceName  = sourceName;
                    sourceInfo.sourceType  = SourceTypeEnum.Excel;
                    sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId);
                    sourceInfo.caption     = caption;
                    sourceInfo.isvalid     = true;
                    sourceInfo.createTime  = DateTime.Now;
                    sourceInfo.updateTime  = DateTime.Now;
                    sourceInfo.sourceStr   = JObject.FromObject(info).ToString();
                    SourceInfoManager.AddSource(sourceInfo);
                }
                obj[YZJsonProperty.success]      = true;
                obj[YZJsonProperty.errorMessage] = "保存成功";
                return(obj);
            }
            catch (Exception ex)
            {
                obj[YZJsonProperty.success]      = false;
                obj[YZJsonProperty.errorMessage] = ex.Message.ToString();
                return(obj);
            }
        }