/// <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); }
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); }
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)); }