public void ConvertToScriptConfig(string savePath) { if (Layers.Count > 0) { ScriptConfig config = new ScriptConfig(); for (int i = 0; i < Layers.Count; i++) { Layer layer = Layers[i]; if (layer.LayerName.ToLower().StartsWith("textlayer")) { ScriptObject obj = new ScriptObject(); obj.LineJoin = (int)layer.LayerText.OutlineStyle; obj.LogoContainer = layer.Transform.Size; obj.LogoPosition = layer.Transform.Position; obj.LogoRotation = layer.Transform.Rotation; obj.LogoScale = layer.Transform.Scale; obj.Order = layer.Order; obj.OutlineColorHex = LogoUtil.ColorToHex(layer.LayerText.OutlineColor); obj.OutlineSize = layer.LayerText.OutlineSize; obj.TextColor = LogoUtil.ColorToHex(layer.LayerText.TextColor); obj.FontSize = layer.LayerText.FontSize; obj.FontName = "font.ttf"; config.LogoList.Add(obj); } } FileUtil.WriteConfig <ScriptConfig>(config, savePath); } }
/// <summary> /// 修改指定的节点显示文本 /// </summary> /// <param name="node">节点对象</param> /// <param name="szNewText">修改文本</param> /// <returns>bool</returns> private bool ModifyNodeText(TreeNode node, string szNewText) { if (node == null || GlobalMethods.Misc.IsEmptyString(szNewText)) { return(false); } ScriptConfig docTypeInfo = node.Tag as ScriptConfig; if (docTypeInfo == null || docTypeInfo.SCRIPT_NAME == szNewText) { return(false); } string szDocTypeID = docTypeInfo.SCRIPT_ID; string szOldDocTypeName = docTypeInfo.SCRIPT_NAME; docTypeInfo.SCRIPT_NAME = szNewText; short shRet = ScriptConfigAccess.Instance.Update(docTypeInfo); if (shRet == SystemData.ReturnValue.OK) { node.Text = szNewText; return(true); } docTypeInfo.SCRIPT_NAME = szOldDocTypeName; MessageBoxEx.Show(string.Format("“{0}”重命名失败!", docTypeInfo.SCRIPT_NAME)); return(false); }
/// <summary> /// 在当前树节点位置处创建模板节点 /// </summary> /// <returns>bool</returns> private bool CreateDocType() { ScriptInfoForm templetInfoForm = new ScriptInfoForm(); templetInfoForm.IsNew = true; templetInfoForm.IsFolder = false; templetInfoForm.DocTypeInfo = this.MakeDocTypeInfo(false); if (templetInfoForm.ShowDialog() != DialogResult.OK) { return(false); } ScriptConfig docTypeInfo = templetInfoForm.DocTypeInfo; if (docTypeInfo == null) { return(false); } short shRet = ScriptConfigAccess.Instance.Insert(docTypeInfo); if (shRet != SystemData.ReturnValue.OK) { MessageBoxEx.ShowError("模板创建失败,无法更新到数据库!"); return(false); } this.CreateNewNode(false, docTypeInfo); ScriptHandler.Instance.OpenScriptConfig(docTypeInfo); return(true); }
/// <summary> /// 获取当前TreeView树中已勾选的病历类型信息列表 /// </summary> /// <returns>病历类型信息列表</returns> private List <ScriptConfig> GetSelectedDocTypeList() { List <ScriptConfig> lstDocTypeInfos = new List <ScriptConfig>(); if (!this.treeView1.CheckBoxes) { TreeNode selectedNode = this.treeView1.SelectedNode; if (selectedNode == null) { return(lstDocTypeInfos); } ScriptConfig docTypeInfo = selectedNode.Tag as ScriptConfig; if (docTypeInfo == null) { return(lstDocTypeInfos); } lstDocTypeInfos.Add(docTypeInfo); return(lstDocTypeInfos); } for (int parentIndex = 0; parentIndex < this.treeView1.Nodes.Count; parentIndex++) { TreeNode parentNode = this.treeView1.Nodes[parentIndex]; if (parentNode.Checked) { lstDocTypeInfos.Add(parentNode.Tag as ScriptConfig); } if (parentNode.Nodes.Count > 0) { this.GetSelectedDocTypeList(parentNode, ref lstDocTypeInfos); } } return(lstDocTypeInfos); }
public void DrawByName(string name, string exportPath, string logoName, string splitString, string exportSplitString, bool isScaleAll) { if (!Directory.Exists(exportPath)) { Directory.CreateDirectory(exportPath); } // get list logo order behind main logo ScriptConfig config = props.ScriptConfig; List <ScriptObject> logoList = config.LogoList.OrderBy(p => p.Order).ToList(); string[] names = name.Trim().Split(new string[] { splitString }, StringSplitOptions.None); string exportName = name.Replace(splitString, exportSplitString); for (int i = 0; i < names.Length; i++) { ScriptObject obj = logoList[i]; string fontPath = props.LogoRootPath + obj.FontName; Font ff = GetCustomFont(fontPath, obj.FontSize); { Layer layer = new Layer(new LayerText(names[i], ff, obj.FontSize, LogoUtil.ConvertStringToColor(obj.TextColor) , (int)obj.OutlineSize, LogoUtil.ConvertStringToColor(obj.OutlineColorHex) , (LineJoin)obj.LineJoin)); layer.UpdateLayer(obj.LogoPosition, obj.LogoScale, obj.LogoRotation, obj.LogoContainer); layerManager.AddTextLayer(layer); } } if (logoList.Count > 0) { layerManager.ExportImage(exportPath + exportName + ".png", new Size(2400, 3200), isScaleAll); } }
/// <summary> /// スクリプト設定をプロパティに設定する /// DBには同名の設定に対して複数のバージョンが格納されているため、 /// 同名の設定のうちバージョンが最新のデータのみを設定する。 /// </summary> /// <param name="configs">設定リスト</param> /// <returns>正常系はtrueを返し、設定リストがnullの場合にはfalseを返す</returns> public bool SetScriptConfigs(List <DtScriptConfig> configs) { if (configs == null) { return(false); } // 設定時に過去のデータはクリアしておく Script = new Dictionary <string, ScriptConfig>(); foreach (DtScriptConfig config in configs) { ScriptConfig c = new ScriptConfig(); c.FileName = config.FileName ?? string.Empty; c.Version = config.Version ?? 0; c.Location = config.Location ?? string.Empty; if (Script.ContainsKey(config.Name)) { // 同名のキーが存在する場合は、バージョンが新しい設定で上書きする if (Script[config.Name].Version < c.Version) { Script[config.Name] = c; } } else { // 同名のキーが存在しない場合には要素を追加する Script.Add(config.Name, c); } } return(true); }
public string SaveScript(ScriptConfig script) { var json = JsonConvert.SerializeObject(script); // would save to DB at this point return(System.Guid.NewGuid().ToString()); }
/// <summary> /// 更新一条整改通知单 /// </summary> /// <param name="timeQCRule">自动核查规则配置信息</param> /// <returns>SystemData.ReturnValue</returns> public short Update(ScriptConfig scriptConfig) { if (scriptConfig == null) { LogManager.Instance.WriteLog("", new string[] { "" } , new object[] { scriptConfig }, "参数不能为空"); return(SystemData.ReturnValue.PARAM_ERROR); } if (base.MedQCAccess == null) { return(SystemData.ReturnValue.PARAM_ERROR); } StringBuilder sbField = new StringBuilder(); sbField.AppendFormat("{0}={1}," , SystemData.ScriptConfigTable.CREATE_TIME, base.MedQCAccess.GetSqlTimeFormat(scriptConfig.CREATE_TIME)); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.CREATOR_ID, scriptConfig.CREATOR_ID); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.CREATOR_NAME, scriptConfig.CREATOR_NAME); sbField.AppendFormat("{0}={1}," , SystemData.ScriptConfigTable.IS_FOLDER, scriptConfig.IS_FOLDER); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.MODIFIER_ID, scriptConfig.MODIFIER_ID); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.MODIFIER_NAME, scriptConfig.MODIFIER_NAME); sbField.AppendFormat("{0}={1}," , SystemData.ScriptConfigTable.MODIFY_TIME, base.MedQCAccess.GetSqlTimeFormat(scriptConfig.MODIFY_TIME)); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.PARENT_ID, scriptConfig.PARENT_ID); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.SCRIPT_LANG, scriptConfig.SCRIPT_LANG); sbField.AppendFormat("{0}='{1}'," , SystemData.ScriptConfigTable.SCRIPT_NAME, scriptConfig.SCRIPT_NAME); sbField.AppendFormat("{0}={1}," , SystemData.ScriptConfigTable.SCRIPT_NO, scriptConfig.SCRIPT_NO); sbField.AppendFormat("{0}='{1}'" , SystemData.ScriptConfigTable.SCRIPT_USING, scriptConfig.SCRIPT_USING); string szCondition = string.Format("{0}='{1}'", SystemData.ScriptConfigTable.SCRIPT_ID, scriptConfig.SCRIPT_ID); string szSQL = string.Format(SystemData.SQL.UPDATE, SystemData.DataTable.SCRIPT_CONFIG, sbField.ToString(), szCondition); int nCount = 0; try { nCount = base.MedQCAccess.ExecuteNonQuery(szSQL, CommandType.Text); } catch (Exception ex) { LogManager.Instance.WriteLog("", new string[] { "szSQL" }, new object[] { szSQL }, ex); return(SystemData.ReturnValue.EXCEPTION); } if (nCount <= 0) { LogManager.Instance.WriteLog("", new string[] { "szSQL" }, new object[] { szSQL }, "SQL语句执行后返回0!"); return(SystemData.ReturnValue.EXCEPTION); } return(SystemData.ReturnValue.OK); }
/// <summary> /// 保存脚本配置信息到本地XML文件 /// </summary> /// <param name="scriptInfo">脚本配置信息</param> /// <returns>SystemData.ReturnValue</returns> private short SaveScriptConfig(ScriptConfig scriptInfo) { if (scriptInfo == null) { return(SystemData.ReturnValue.FAILED); } string szConfigXml = this.GetDllCacheIndexFilePath(); if (GlobalMethods.Misc.IsEmptyString(szConfigXml)) { LogManager.Instance.WriteLog("ScriptCache.SaveScriptConfig", "文件名称为空!"); return(SystemData.ReturnValue.FAILED); } //1 读取XML文件,若为空,则创建 XmlDocument xmlDoc = GlobalMethods.Xml.GetXmlDocument(szConfigXml); if (xmlDoc == null) { xmlDoc = GlobalMethods.Xml.CreateXmlDocument("ScriptConfig"); } if (xmlDoc == null) { return(SystemData.ReturnValue.FAILED); } //2 读取指定节点,若为空,则创建 string szDllXPath = string.Format("/ScriptConfig/Dll[@Name=\"{0}\"]", scriptInfo.SCRIPT_ID); XmlNode node = GlobalMethods.Xml.SelectXmlNode(xmlDoc, szDllXPath); if (node == null) { node = GlobalMethods.Xml.CreateXmlNode(xmlDoc, null, "Dll", null); } if (node == null) { return(SystemData.ReturnValue.FAILED); } //3 设置属性值 if (!GlobalMethods.Xml.SetXmlAttrValue(node, "Name", scriptInfo.SCRIPT_ID)) { return(SystemData.ReturnValue.FAILED); } string szUpdateTime = scriptInfo.MODIFY_TIME.ToString(); if (!GlobalMethods.Xml.SetXmlAttrValue(node, "UpdateTime", szUpdateTime)) { return(SystemData.ReturnValue.FAILED); } //4 保存 bool isSuccess = GlobalMethods.Xml.SaveXmlDocument(xmlDoc, szConfigXml); return(isSuccess ? SystemData.ReturnValue.OK : SystemData.ReturnValue.FAILED); }
/// <summary> /// 创建一个新的目录或者类型节点 /// </summary> /// <param name="bIsDir">是否是目录</param> /// <param name="docTypeInfo">病历类型信息</param> /// <returns>节点</returns> private TreeNode CreateNewNode(bool bIsDir, ScriptConfig docTypeInfo) { TreeNode node = new TreeNode(); node.Tag = docTypeInfo; if (docTypeInfo == null) { node.Text = bIsDir ? "新建目录" : "未命名模板"; } else { node.Text = docTypeInfo.SCRIPT_NAME; } node.ImageIndex = bIsDir ? 0 : 2; node.SelectedImageIndex = node.ImageIndex; TreeNode selectedNode = this.treeView1.SelectedNode; if (selectedNode == null) { this.treeView1.Nodes.Add(node); return(node); } ScriptConfig selectedDocType = selectedNode.Tag as ScriptConfig; if (selectedDocType == null) { this.treeView1.Nodes.Add(node); return(node); } TreeNode parentNode = selectedNode; if (selectedDocType.IS_FOLDER == 0) { parentNode = selectedNode.Parent; } if (parentNode != null) { parentNode.Nodes.Add(node); parentNode.Expand(); } else { this.treeView1.Nodes.Add(node); } if (node.TreeView != null) { this.treeView1.SelectedNode = node; node.BeginEdit(); return(node); } return(null); }
/// <summary> /// 初始化加载工作 /// </summary> private void LoadScriptData() { if (this.ScriptInfoList == null || this.ScriptInfoList.Count == 0) { return; } for (int index = 0; index < this.ScriptInfoList.Count; index++) { ScriptConfig scriptInfo = this.ScriptInfoList[index]; this.DownLoadScript(scriptInfo); } }
/// <summary> /// 保存系统缺省模板到数据库服务器 /// </summary> /// <param name="szScriptID">报表类型ID</param> /// <param name="byteScriptData">系统缺省模板</param> /// <returns>ServerData.ExecuteResult</returns> public short SaveScriptDataToDB(ScriptConfig scriptConfig, string szScriptSource, byte[] byteScriptData) { if (base.MedQCAccess == null) { return(SystemData.ReturnValue.PARAM_ERROR); } string szField = string.Format("{0}={1}", SystemData.ScriptConfigTable.MODIFY_TIME, base.MedQCAccess.GetSqlTimeFormat(scriptConfig.MODIFY_TIME)); DbParameter[] pmi = null; if (szScriptSource != null) { szField = string.Format("{0},{1}={2}", szField, SystemData.ScriptConfigTable.SCRIPT_SOURCE, base.MedQCAccess.GetSqlParamName("SCRIPT_DATA")); pmi = new DbParameter[1]; pmi[0] = new DbParameter("SCRIPT_DATA", szScriptSource); } string szCondition = string.Format("{0}='{1}'", SystemData.ScriptConfigTable.SCRIPT_ID, scriptConfig.SCRIPT_ID); string szSQL = string.Format(SystemData.SQL.UPDATE, SystemData.DataTable.SCRIPT_CONFIG, szField, szCondition); if (!base.MedQCAccess.BeginTransaction(IsolationLevel.ReadCommitted)) { return(SystemData.ReturnValue.EXCEPTION); } int nCount = 0; try { nCount = base.MedQCAccess.ExecuteNonQuery(szSQL, CommandType.Text, ref pmi); } catch (Exception ex) { base.MedQCAccess.AbortTransaction(); LogManager.Instance.WriteLog("", ex); return(SystemData.ReturnValue.EXCEPTION); } if (nCount <= 0) { LogManager.Instance.WriteLog("ScriptAccess.SaveSystemScriptToDB", new string[] { "szSQL" }, new object[] { szSQL }, "SQL语句执行后返回0!"); return(SystemData.ReturnValue.EXCEPTION); } short result = ScriptDataAccess.Instance.UpdateScriptData(scriptConfig.SCRIPT_ID, byteScriptData); if (result != SystemData.ReturnValue.OK) { base.MedQCAccess.AbortTransaction(); return(result); } base.MedQCAccess.CommitTransaction(true); return(SystemData.ReturnValue.OK); }
public virtual bool ShowConfigDialog(IWin32Window owner) { using (var dialog = new TDialog()) { dialog.Setup(ScriptConfig.Config); if (dialog.ShowDialog(owner) != DialogResult.OK) { return(false); } ScriptConfig.Save(); return(true); } }
public ServerTimer(ScriptConfig config, Server server) { if (config == null) { throw new ArgumentNullException("ScriptConfig object is null"); } this.Server = server; this.Config = config; this.IsStopping = false; this.Timer = new Timer((sender) => { this.RestartServer(sender as ServerTimer); }, this, this.Config.GetInt("RestartTimeout") * 1000, Timeout.Infinite); }
public NeonConfig() { Database = new DatabaseConfig(); Scripts = new ScriptConfig(); Mqtt = new MqttConfig(); Plugins = new PluginConfig(); Tasks = new TaskConfig(); FileSystem = new FileSystemConfig(); Components = new ComponentConfig(); EventsDatabase = new EventDatabaseConfig(); IoT = new IoTConfig(); JwtToken = "password"; AutoLoadComponents = true; Home = new HomeConfig(); }
private bool SaveTempletToServer(string szScriptSource, byte[] byteScriptData) { //获取当前模板类型信息 ScriptConfig scriptConfig = null; if (this.ActiveScript != null) { scriptConfig = this.ActiveScript.ScriptConfig; } else if (this.ActiveScript != null) { scriptConfig = this.ActiveScript.ScriptConfig; } ScriptSelectForm frmTempletSelect = new ScriptSelectForm(); frmTempletSelect.Description = "请选择需要更新的目标病历模板:"; frmTempletSelect.MultiSelect = false; if (scriptConfig != null) { frmTempletSelect.DefaultDocTypeID = scriptConfig.SCRIPT_ID; } if (frmTempletSelect.ShowDialog() != DialogResult.OK) { return(false); } if (frmTempletSelect.SelectedScriptConfigs == null) { return(false); } if (frmTempletSelect.SelectedScriptConfigs.Count <= 0) { return(false); } scriptConfig = frmTempletSelect.SelectedScriptConfigs[0]; scriptConfig.MODIFY_TIME = SysTimeHelper.Instance.Now; short shRet = ScriptConfigAccess.Instance.SaveScriptDataToDB(scriptConfig, szScriptSource, byteScriptData); if (shRet != SystemData.ReturnValue.OK) { string szDocTypeName = scriptConfig.SCRIPT_NAME; MessageBoxEx.Show(string.Format("模板“{0}”保存失败!", szDocTypeName)); return(false); } return(true); }
/// <summary> /// 加载脚本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Load_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog(); openFileDialog.Filter = "脚本项目文件 (*.sProject)|*.sProject"; if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ScriptConfig = JsonConvert.DeserializeObject <ScriptConfig>(openFileDialog.FileName.GetStringFromFile()); string path = System.IO.Path.GetDirectoryName(openFileDialog.FileName); foreach (var item in ScriptConfig.ScriptFiles) { IScriptLayout scriptLayout = new IScriptLayout(); scriptLayout.LoadFromJson(System.IO.Path.Combine(path, item + ".script")); scriptContent.ScriptControl.AddScript(StackingMainLayout.InstanceStackingMainLayout(scriptLayout)); } } }
/// <summary> /// 获取指定脚本ID的实例化对象 /// </summary> /// <param name="szSCRIPT_ID">脚本配置信息</param> /// <param name="elementCalculators">实例化对象</param> /// <returns>SystemData.ReturnValue</returns> private short GetScriptInstance(ScriptConfig scriptInfo, ref List <IElementCalculator> elementCalculators) { if (scriptInfo == null) { return(SystemData.ReturnValue.FAILED); } if (GlobalMethods.Misc.IsEmptyString(scriptInfo.SCRIPT_ID)) { return(SystemData.ReturnValue.FAILED); } if (this.m_htScriptInstance == null) { this.m_htScriptInstance = new Hashtable(); } if (this.m_htScriptInstance.Contains(scriptInfo.SCRIPT_ID)) { elementCalculators = this.m_htScriptInstance[scriptInfo.SCRIPT_ID] as List <IElementCalculator>; return(SystemData.ReturnValue.OK); } short result = SystemData.ReturnValue.OK; if (!this.CheckDllIsNewest(scriptInfo)) { result = this.DownLoadScript(scriptInfo); if (result != SystemData.ReturnValue.OK) { return(SystemData.ReturnValue.FAILED); } } string fileName = this.GetScriptCachePath(scriptInfo.SCRIPT_ID); elementCalculators = AssemblyHelper.Instance.GetElementCalculator(fileName); if (elementCalculators == null || elementCalculators.Count <= 0) { return(SystemData.ReturnValue.FAILED); } if (!this.m_htScriptInstance.Contains(scriptInfo.SCRIPT_ID)) { this.m_htScriptInstance.Add(scriptInfo.SCRIPT_ID, elementCalculators); } return(SystemData.ReturnValue.OK); }
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { try { GlobalMethods.UI.SetCursor(this.treeView1, Cursors.WaitCursor); ScriptConfig docTypeInfo = e.Node.Tag as ScriptConfig; if (docTypeInfo != null && docTypeInfo.IS_FOLDER == 0) { ScriptHandler.Instance.OpenScriptConfig(e.Node.Tag as ScriptConfig); } GlobalMethods.UI.SetCursor(this.treeView1, Cursors.Default); } catch (Exception ex) { LogManager.Instance.WriteLog(ex.ToString()); } }
/// <summary> /// 返回当前选中的模板节点对应的文档类型信息 /// </summary> /// <param name="bIsDir">是否是目录</param> /// <returns>DocTypeInfo</returns> private ScriptConfig MakeScriptConfig(bool bIsDir) { ScriptConfig scriptConfig = new ScriptConfig(); scriptConfig.SCRIPT_ID = scriptConfig.MakeScriptID(); scriptConfig.CREATE_TIME = SysTimeHelper.Instance.Now; if (SystemParam.Instance.UserInfo == null) { scriptConfig.CREATOR_ID = "administrator"; scriptConfig.CREATOR_NAME = "管理员"; } else { scriptConfig.CREATOR_ID = SystemParam.Instance.UserInfo.USER_ID; scriptConfig.CREATOR_NAME = SystemParam.Instance.UserInfo.USER_NAME; } scriptConfig.IS_FOLDER = bIsDir ? 1 : 0; scriptConfig.PARENT_ID = string.Empty; scriptConfig.SCRIPT_NAME = bIsDir ? "新建目录" : "未命名模板"; TreeNode selectedNode = this.treeView1.SelectedNode; if (selectedNode == null) { return(scriptConfig); } ScriptConfig selectedDocType = selectedNode.Tag as ScriptConfig; if (selectedDocType == null) { return(scriptConfig); } if (selectedDocType.IS_FOLDER == 1) { scriptConfig.PARENT_ID = selectedDocType.SCRIPT_ID; } else { scriptConfig.PARENT_ID = selectedDocType.PARENT_ID; } return(scriptConfig); }
/// <summary> /// メッセージクラス内のスクリプト設定同士を比較する /// </summary> /// <param name="m1">メッセージクラスオブジェクト1</param> /// <param name="m2">メッセージクラスオブジェクト2</param> /// <returns>比較結果。内容が完全に一致していればtrueを返す</returns> private static bool ScriptConfigEquals(ServerSyncMessage m1, ServerSyncMessage m2) { List <string> keys1 = new List <string>(m1.Script.Keys); List <string> keys2 = new List <string>(m2.Script.Keys); // キーの数を比較 if (keys1.Count != keys2.Count) { return(false); } // 要素の比較 for (int i1 = 0; i1 < keys1.Count; i1++) { string key1 = keys1[i1]; for (int i2 = 0; i2 < keys2.Count; i2++) { string key2 = keys2[i2]; // キーが一致しているか? if (key1.Equals(key2)) { // 同じキーを持つ設定不一致のため終了 if (!ScriptConfig.Equals(m1.Script[key1], m2.Script[key2])) { return(false); } break; } else { // key1に一致するkey2が存在しなかった場合は設定不一致のため終了 if (i2 == keys2.Count - 1) { return(false); } } } } return(true); }
/// <summary> /// 显示选中的模板的信息,并接受修改 /// </summary> private void ShowTempletInfoEditForm() { TreeNode selectedNode = this.treeView1.SelectedNode; if (selectedNode == null) { return; } ScriptConfig docTypeInfo = selectedNode.Tag as ScriptConfig; if (docTypeInfo == null) { return; } string szDocTypeID = docTypeInfo.SCRIPT_ID; ScriptInfoForm templetInfoForm = new ScriptInfoForm(); templetInfoForm.IsNew = false; templetInfoForm.IsFolder = docTypeInfo.IS_FOLDER == 1; templetInfoForm.DocTypeInfo = docTypeInfo.Clone() as ScriptConfig; DialogResult result = templetInfoForm.ShowDialog(); if (result != DialogResult.OK) { return; } docTypeInfo = templetInfoForm.DocTypeInfo; if (docTypeInfo == null) { return; } short shRet = ScriptConfigAccess.Instance.Update(docTypeInfo); if (shRet != SystemData.ReturnValue.OK) { MessageBoxEx.ShowError("模板创建失败,无法更新到数据库!"); return; } selectedNode.Tag = docTypeInfo; selectedNode.Text = docTypeInfo.SCRIPT_NAME; }
public void DrawByName(string name, string exportPath, string logoName) { try { if (!Directory.Exists(exportPath)) { Directory.CreateDirectory(exportPath); } // get list logo order behind main logo ScriptConfig config = props.ScriptConfig; List <ScriptObject> logoList = config.LogoList.OrderBy(p => p.Order).ToList(); string[] names = name.Trim().Split(new string[] { Settings.Default.SplitString }, StringSplitOptions.None); string exportName = name.Replace(Settings.Default.SplitString, Settings.Default.ExportSplitString); for (int i = 0; i < names.Length; i++) { ScriptObject obj = logoList[i]; string fontPath = props.LogoRootPath + obj.FontName; Font ff = GetCustomFont(fontPath, obj.FontSize); { AutoArtist.Model.Layer layer = new AutoArtist.Model.Layer(new AutoArtist.Model.LayerText(names[i], ff, obj.FontSize, LogoUtil.ConvertStringToColor(obj.TextColor) , (int)obj.OutlineSize, LogoUtil.ConvertStringToColor(obj.OutlineColorHex) , (LineJoin)obj.LineJoin)); layer.UpdateLayer(obj.LogoPosition, obj.LogoScale, obj.LogoRotation, obj.LogoContainer); layerManager.AddTextLayer(layer); } } if (logoList.Count > 0) { layerManager.ExportImage(exportPath + exportName + ".png", new Size(2400, 3200), config.AutoScaleAll); } else { System.Windows.Forms.MessageBox.Show("Cannot found any logo info!"); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Error: " + ex.Message); } }
internal ScriptEditForm GetScriptForm(ScriptConfig scriptConfig) { if (this.MainForm == null) { return(null); } foreach (IDockContent content in this.MainForm.Documents) { ScriptEditForm scriptForm = content as ScriptEditForm; if (scriptForm == null || scriptForm.ScriptConfig == null) { continue; } if (scriptForm.ScriptConfig.SCRIPT_ID == scriptConfig.SCRIPT_ID) { return(scriptForm); } } return(null); }
/// <summary> /// 获取指定病历类型的所有脚本DLL实例化对象 /// </summary> /// <param name="szExecuteTime">执行时机</param> /// <param name="szDocTypeID">病历类型</param> /// <param name="elementCalculators">实例化对象列表</param> /// <returns>SystemData.ReturnValue</returns> public short GetScriptInstances(string szDocTypeID , ref List <IElementCalculator> elementCalculators) { if (this.ScriptInfoList == null) { return(SystemData.ReturnValue.FAILED); } if (elementCalculators == null) { elementCalculators = new List <IElementCalculator>(); } short result = SystemData.ReturnValue.OK; for (int index = 0; index < this.ScriptInfoList.Count; index++) { ScriptConfig scriptInfo = this.ScriptInfoList[index]; if (scriptInfo == null) { continue; } bool docTypeMatched = scriptInfo.SCRIPT_ID == szDocTypeID; if (string.IsNullOrEmpty(scriptInfo.SCRIPT_ID)) { docTypeMatched = true; } if (docTypeMatched) { List <IElementCalculator> elementCalculatorList = null; result = this.GetScriptInstance(scriptInfo, ref elementCalculatorList); if (elementCalculatorList != null && elementCalculatorList.Count > 0) { elementCalculators.AddRange(elementCalculatorList); } } } return(SystemData.ReturnValue.OK); }
/// <summary> /// 检测本地Dll文件是不是最新版本 /// </summary> /// <param name="scriptInfo">脚本配置信息</param> /// <returns>true/false</returns> private bool CheckDllIsNewest(ScriptConfig scriptInfo) { if (scriptInfo == null) { return(false); } //1 加载本地的配置文件 string szConfigFile = this.GetDllCacheIndexFilePath(); XmlDocument xmlDoc = GlobalMethods.Xml.GetXmlDocument(szConfigFile); //2 配置文件不存在,则说明本地没有任何DLL,故直接下载 if (xmlDoc == null) { return(false); } //3 本地有配置文件,但不存在当前指定的DLL,故直接下载 string szXPath = string.Format("/ScriptConfig/Dll[@Name=\"{0}\"]", scriptInfo.SCRIPT_ID); XmlNode dllNode = GlobalMethods.Xml.SelectXmlNode(xmlDoc, szXPath); if (dllNode == null) { return(false); } //4 本地有配置文件,且存在当前指定的脚本,则进行更新日期的比较 string szUpdateTime = null; if (!GlobalMethods.Xml.GetXmlNodeValue(dllNode, "./@UpdateTime", ref szUpdateTime)) { LogManager.Instance.WriteLog("ScriptCache.CheckDllIsNewest", "读取本地配置文件失败!"); return(false); } //5 本地有配置文件,且存在当前指定的脚本,但更新日期不一致,则重新下载 DateTime dtUpdateTime = DateTime.Now; GlobalMethods.Convert.StringToDate(szUpdateTime, ref dtUpdateTime); return(GlobalMethods.SysTime.CompareTime(scriptInfo.MODIFY_TIME, dtUpdateTime)); }
/// <summary> /// 加载脚本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Load_Script(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog(); openFileDialog.Filter = "脚本项目文件 (*.sProject)|*.sProject"; if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ScriptConfig = JsonConvert.DeserializeObject <ScriptConfig>(openFileDialog.FileName.GetStringFromFile()); string path = System.IO.Path.GetDirectoryName(openFileDialog.FileName); projectPath = System.IO.Path.GetDirectoryName(openFileDialog.FileName); foreach (var item in ScriptConfig.ScriptFiles) { IScriptLayout scriptLayout = new IScriptLayout(); scriptLayout.LoadFromJson(System.IO.Path.Combine(path, item + ".script")); scriptLayout.ComipleMessageCall += logBox.WritLog; ScriptLayouts.Add(scriptLayout); } //加载任务 if (System.IO.File.Exists(System.IO.Path.Combine(projectPath, "projectTask.task"))) { ObservableCollection <ScriptTask> scriptTasks = Newtonsoft.Json.JsonConvert. DeserializeObject <ObservableCollection <ScriptTask> >(System.IO.Path.Combine(projectPath, "projectTask.task") .GetStringFromFile()); foreach (var listitem in scriptTasks) { foreach (var item in listitem.TaskItems) { IScriptLayout script = ScriptLayouts.FindOne(p => p.ScriptName == item.ScriptName); if (script != null) { item.ScriptLayout = script; } } TaskItems.Add(listitem); } scriptTasks.Clear(); scriptTasks = null; } } }
/// <summary> /// 返回当前选中的模板节点对应的文档类型信息 /// </summary> /// <param name="bIsDir">是否是目录</param> /// <returns>DocTypeInfo</returns> private ScriptConfig MakeDocTypeInfo(bool bIsDir) { ScriptConfig docTypeInfo = new ScriptConfig(); docTypeInfo.SCRIPT_ID = docTypeInfo.MakeScriptID(); docTypeInfo.IS_FOLDER = bIsDir ? 1 : 0; docTypeInfo.PARENT_ID = string.Empty; docTypeInfo.SCRIPT_NAME = bIsDir ? "新建目录" : "未命名模板"; docTypeInfo.MODIFY_TIME = SysTimeHelper.Instance.Now; docTypeInfo.SCRIPT_NO = this.treeView1.Nodes.Count; TreeNode selectedNode = this.treeView1.SelectedNode; if (selectedNode == null) { return(docTypeInfo); } ScriptConfig selectedDocType = selectedNode.Tag as ScriptConfig; if (selectedDocType == null) { return(docTypeInfo); } if (selectedDocType.IS_FOLDER == 1) { docTypeInfo.PARENT_ID = selectedDocType.SCRIPT_ID; docTypeInfo.SCRIPT_NO = selectedNode.Nodes.Count; } else { docTypeInfo.PARENT_ID = selectedDocType.PARENT_ID; if (selectedNode.Parent != null) { docTypeInfo.SCRIPT_NO = selectedNode.Parent.Nodes.Count; } } return(docTypeInfo); }
internal short OpenScriptConfig(ScriptConfig scriptConfig) { if (scriptConfig == null) { return(SystemData.ReturnValue.FAILED); } ScriptEditForm scriptEditForm = this.GetScriptForm(scriptConfig); if (scriptEditForm != null) { scriptEditForm.Activate(); return(SystemData.ReturnValue.OK); } scriptEditForm = new ScriptEditForm(this.MainForm); scriptEditForm.FlagCode = Guid.NewGuid().ToString(); scriptEditForm.ScriptConfig = scriptConfig; this.MainForm.OpenScriptEditForm(scriptEditForm); string szScriptID = scriptConfig.SCRIPT_ID; string szHndfFile = string.Format("{0}\\Cache\\{1}.vbs" , GlobalMethods.Misc.GetWorkingPath(), szScriptID); string byteTempletData = null; if (szScriptID != string.Empty) { short shRet = ScriptConfigAccess.Instance.GetScriptSource(szScriptID, ref byteTempletData); if (shRet != SystemData.ReturnValue.OK) { return(shRet); } } GlobalMethods.IO.WriteFileText(szHndfFile, byteTempletData); return(scriptEditForm.OpenScriptFile(szHndfFile) ? SystemData.ReturnValue.OK : SystemData.ReturnValue.FAILED); }
/// <summary> /// 生成待保存的文档类型信息 /// </summary> /// <returns>bool</returns> private bool MakeDocTypeInfo() { if (this.m_docTypeInfo == null) { this.m_docTypeInfo = new ScriptConfig(); } if (this.txtTempletID.Text.Trim() == string.Empty) { MessageBoxEx.ShowError("请输入病历类型ID号"); return(false); } if (this.txtTempletName.Text.Trim() == string.Empty) { MessageBoxEx.ShowError("请输入病历类型名称"); return(false); } this.DocTypeInfo.SCRIPT_NAME = this.txtTempletName.Text; this.DocTypeInfo.SCRIPT_ID = this.txtTempletID.Text; return(true); }