コード例 #1
0
        /// <summary>
        /// 构建代码信息
        /// </summary>
        /// <param name="assembly"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        async Task <string> BuildInfo(Assembly assembly, Type type)
        {
            IRazorEngine razorEngine = new RazorEngine();
            string       template    = GetResourceTemplate("info.cshtml");
            IRazorEngineCompiledTemplate <RazorEngineTemplateBase <CodeInfoModel> > compile = await razorEngine.CompileAsync <RazorEngineTemplateBase <CodeInfoModel> >(template);

            string html = compile.Run(modelBuilder =>
            {
                CodeInfoModel model       = new CodeInfoModel();
                PropertyInfo[] properties = type.GetProperties().Where(x => x.CanWrite).ToArray(); // 当前类型公开定义的可写属性数组

                model.AssemblyName  = assembly.GetName().Name;
                model.ClassName     = type.Name;
                model.Namespace     = type.Namespace;
                model.PropertyNames = properties.Select(x => x.Name).ToArray();
                try
                {
                    model.Json = JsonSerializer.Serialize(Activator.CreateInstance(type));
                }
                catch
                {
                    // ignore
                    /*****忽略json序列化失败*****/
                }

                modelBuilder.Model = model;
            });

            return(html);
        }
コード例 #2
0
ファイル: CodeBusiness.cs プロジェクト: wakcie1/Test
        public static CodeInfoModel SaveCode(CodeModel model, UserLoginInfo loginUser)
        {
            var result = new CodeInfoModel()
            {
                IsSuccess = true
            };

            try
            {
                var isOrNotExistModel = _codeDAL.SearchModelByCode(model.BCCode, model.BCCategory).FirstOrDefault();
                if (isOrNotExistModel == null)
                {
                    model.BCIsValid         = 1;
                    model.BCCreateUserNo    = loginUser.JobNum;
                    model.BCCreateUserName  = loginUser.UserName;
                    model.BCCreateTime      = DateTime.Now;
                    model.BCOperateUserNo   = loginUser.JobNum;
                    model.BCOperateUserName = loginUser.UserName;
                    model.BCOperateTime     = DateTime.Now;
                    model.Id       = _codeDAL.InsertModel(model);
                    result.Message = EncryptHelper.DesEncrypt(model.Id.ToString());
                    result.model   = model;
                }
                else
                {
                    CodeModel updateModel = new CodeModel();
                    updateModel                   = isOrNotExistModel;
                    updateModel.BCIsValid         = 1;
                    updateModel.BCCodeOrder       = model.BCCodeOrder;
                    updateModel.BCOperateUserNo   = loginUser.JobNum;
                    updateModel.BCOperateUserName = loginUser.UserName;
                    updateModel.BCOperateTime     = DateTime.Now;
                    var updateResult = _codeDAL.Update(updateModel);
                    if (updateResult)
                    {
                        result.model = updateModel;
                    }
                    else
                    {
                        result.IsSuccess = false;
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message   = ex.Message;
            }
            return(result);
        }
コード例 #3
0
        public async Task <ActionResult> LoadDefModByTypeValue([FromBody] List <CodeInfoParram> codeInfos)
        {
            var outPut     = new RestOutput <List <CodeInfoModel> >();
            var outPutData = new List <CodeInfoModel>();

            try
            {
                var m_Client = new CoreController(_configuration);
                foreach (var item in codeInfos)
                {
                    try
                    {
                        if (item.ListSource == null)
                        {
                            continue;
                        }
                        if (item.ListSource.Contains(":"))
                        {
                            var codeInfoModel = new CodeInfoModel
                            {
                                Name      = item.Name,
                                CodeInfos = m_Client.LoadDefModByTypeValue(item.ListSource)
                            };
                            outPutData.Add(codeInfoModel);
                        }
                        else
                        {
                            var parram = new List <string>();
                            if (!string.IsNullOrEmpty(item.Parrams))
                            {
                                parram.Add(item.Parrams);
                            }
                            var param     = new List <SqlParameter>();
                            var storeName = item.ListSource;
                            if (!(item.ListSource.IndexOf("(") < 0 && item.ListSource.IndexOf(")") < 0))
                            {
                                storeName = item.ListSource.Substring(0, item.ListSource.IndexOf("("));
                                var strParr = item.ListSource.Substring(item.ListSource.IndexOf("(") + 1, item.ListSource.IndexOf(")") - item.ListSource.IndexOf("(") - 1);
                                if (!string.IsNullOrEmpty(strParr))
                                {
                                    parram.AddRange(strParr.Split(','));
                                }
                            }

                            param = m_Client.DiscoveryParameters(storeName);
                            int index = 0;
                            foreach (var pr in param)
                            {
                                //if (pr.NpgsqlDbType != NpgsqlTypes.NpgsqlDbType.Refcursor)
                                //{
                                pr.Value = parram[index];
                                index++;
                                //}
                            }
                            var data = new DataTable();

                            data = (DataTable)m_Client.RunStoreToDataTable(storeName, param);


                            if (data != null)
                            {
                                if (data.Columns.Contains("VALUE"))//Trường hợp load các Listsource không phải callback
                                {
                                    if (item.CtrlType != EControlType.SCL.ToString())
                                    {
                                        var codeInfoControls = (from p in data.AsEnumerable() select new CodeInfo {
                                            CodeValue = p["VALUE"].ToString(), CodeValueName = p["TEXT"].ToString()
                                        }).ToList();
                                        var codeInfoModel    = new CodeInfoModel
                                        {
                                            ControlType = item.CtrlType,
                                            Name        = item.Name,
                                            CodeInfos   = codeInfoControls
                                        };
                                        outPutData.Add(codeInfoModel);
                                    }
                                    else
                                    {
                                        var scheduleControl = (from p in data.AsEnumerable() select new ScheduleControlModel {
                                            id = p["id"].ToString(), title = p["title"].ToString(), className = p["className"].ToString(), end = p["end"].ToString(), start = p["start"].ToString(), url = p["url"].ToString(), modId = p["modId"].ToString()
                                        }).ToList();
                                        var codeInfoModel   = new CodeInfoModel
                                        {
                                            ControlType      = item.CtrlType,
                                            Name             = item.Name,
                                            ScheduleControls = scheduleControl
                                        };
                                        outPutData.Add(codeInfoModel);
                                    }
                                }
                                else//Trường hợp load các Listsource  callback
                                {
                                    var dataCallBack  = JsonConvert.SerializeObject(data);
                                    var codeInfoModel = new CodeInfoModel
                                    {
                                        ControlType  = item.CtrlType,
                                        Name         = item.Name,
                                        DataCallBack = dataCallBack
                                    };
                                    outPutData.Add(codeInfoModel);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }
                }
                outPut.Data       = outPutData;
                outPut.ResultCode = 1;
                return(Ok(outPut));
            }
            catch (Exception ex)
            {
                outPut.ResultCode = -1;
                outPut.Message    = ex.ToString();
                return(Ok(outPut));
            }
            return(Ok(outPut));
        }