private bool ExecuteTemplateOverride(TemplateOperations operation, ZeusTemplate template, ZeusSavedInput input, ShowGUIEventHandler guiEventHandler) { switch (operation) { case TemplateOperations.Execute: this._mdi.PerformMdiFuntion(this, "ExecutionQueueStart"); ZeusProcessManager.ExecuteTemplate(template.FullFileName, _executionCallback); break; case TemplateOperations.ExecuteLoadedInput: this._mdi.PerformMdiFuntion(this, "ExecutionQueueStart"); ZeusProcessManager.ExecuteSavedInput(input.FilePath, _executionCallback); break; case TemplateOperations.SaveInput: SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { this._mdi.PerformMdiFuntion(this, "ExecutionQueueStart"); ZeusProcessManager.RecordTemplateInput(template.FullFileName, saveFileDialog.FileName, _executionCallback); } break; } return(true); }
protected void buildChildren(SortedTreeNode rootNode, DirectoryInfo rootInfo) { ZeusTemplate template; foreach (DirectoryInfo dirInfo in rootInfo.GetDirectories()) { FolderTreeNode node = new FolderTreeNode(dirInfo.Name); rootNode.AddSorted(node); this.buildChildren(node, dirInfo); } foreach (FileInfo fileInfo in rootInfo.GetFiles()) { if ((fileInfo.Extension == ".jgen") || (fileInfo.Extension == ".vbgen") || (fileInfo.Extension == ".csgen") || (fileInfo.Extension == ".zeus")) { string filename = fileInfo.FullName; try { template = new ZeusTemplate(filename); } catch { continue; } TemplateTreeNode node = new TemplateTreeNode(template, true); rootNode.AddSorted(node); } } }
private void toolBarToolbar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { if ((e.Button == this.toolBarButtonRefresh) || (e.Button == this.toolBarButtonMode)) { if (this.toolBarButtonMode.Pushed) { this.LoadTemplatesByFile(); } else { this.LoadTemplates(); } } else if (e.Button == this.toolBarButtonOpen) { if (this.treeViewTemplates.SelectedNode is TemplateTreeNode) { OnTemplateOpen(this.treeViewTemplates.SelectedNode.Tag.ToString()); } } else if (e.Button == this.toolBarButtonExecute) { if (this.treeViewTemplates.SelectedNode is TemplateTreeNode) { ZeusTemplate template = new ZeusTemplate(this.treeViewTemplates.SelectedNode.Tag.ToString()); ExecuteTemplate(template); } } }
protected void buildChildren(DirectoryInfo rootInfo, ArrayList templates) { ZeusTemplate template; foreach (DirectoryInfo dirInfo in rootInfo.GetDirectories()) { this.buildChildren(dirInfo, templates); } foreach (FileInfo fileInfo in rootInfo.GetFiles()) { if ((fileInfo.Extension == ".jgen") || (fileInfo.Extension == ".vbgen") || (fileInfo.Extension == ".csgen") || (fileInfo.Extension == ".zeus")) { string filename = fileInfo.FullName; if (!templates.Contains(filename)) { try { template = new ZeusTemplate(filename); } catch { continue; } templates.Add(template); } } } }
public void SaveInput() { if (this.treeViewTemplates.SelectedNode is TemplateTreeNode) { ZeusTemplate template = new ZeusTemplate(this.treeViewTemplates.SelectedNode.Tag.ToString()); SaveInput(template); } }
public void Execute() { if (this.treeViewTemplates.SelectedNode is TemplateTreeNode) { ZeusTemplate template = new ZeusTemplate(this.treeViewTemplates.SelectedNode.Tag.ToString()); ExecuteTemplate(template); } }
protected ZeusTemplate LoadIntoTemplate(Stream stream, string filepath, ZeusTemplate template) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); LoadIntoTemplate(reader, filepath, template); reader.Close(); return(template); }
public void ExecuteTemplate(ZeusTemplate template) { Cursor.Current = Cursors.WaitCursor; DefaultSettings settings = DefaultSettings.Instance; IZeusContext context = new ZeusContext(); IZeusGuiControl guiController = context.Gui; IZeusOutput zout = context.Output; settings.PopulateZeusContext(context); bool exceptionOccurred = false; bool result = false; try { template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.Timeout = settings.ScriptTimeout; template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.SetShowGuiHandler(new ShowGUIEventHandler(DynamicGUI_Display)); result = template.GuiSegment.Execute(context); template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.Cleanup(); if (result) { template.BodySegment.ZeusScriptingEngine.ExecutionHelper.Timeout = settings.ScriptTimeout; result = template.BodySegment.Execute(context); template.BodySegment.ZeusScriptingEngine.ExecutionHelper.Cleanup(); } } catch (Exception ex) { mdi.ErrorsOccurred(ex); //ZeusDisplayError formError = new ZeusDisplayError(ex); //formError.SetControlsFromException(); //formError.ShowDialog(this); exceptionOccurred = true; } Cursor.Current = Cursors.Default; if (!exceptionOccurred && result) { if (settings.EnableClipboard) { try { Clipboard.SetDataObject(zout.text, true); } catch { // HACK: For some reason, Clipboard.SetDataObject throws an error on some systems. I'm cathhing it and doing nothing for now. } } MessageBox.Show("Successfully rendered Template: " + template.Title); } }
public TemplateTreeNode(ZeusTemplate template) { //this.NodeFont = new System.Drawing.Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold, GraphicsUnit.Point); this.ForeColor = Color.Blue; this.Text = template.Title; this.Tag = template.FilePath + template.FileName; this.Comments = template.Comments; this.ImageIndex = this.SelectedImageIndex = 6; }
public void LoadIntoTemplate(string filePath, ZeusTemplate template) { template.BodySegment.Engine = template.GuiSegment.Engine = ENGINE_MICROSOFT_SCRIPT; template.BodySegment.Language = template.GuiSegment.Language = LANGUAGE_JSCRIPT; StreamReader reader = new StreamReader(filePath, Encoding.UTF8); LoadIntoTemplate(reader, filePath, template); reader.Close(); }
public void SaveInput(ZeusTemplate template) { bool overridden = false; if (ExecuteTemplateOverride != null) { overridden = ExecuteTemplateOverride(TemplateOperations.SaveInput, template, null, _guiHandler); } if (!overridden) { try { DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); ZeusContext context = new ZeusContext(); context.Log = log; ZeusSavedInput collectedInput = new ZeusSavedInput(); collectedInput.InputData.TemplateUniqueID = template.UniqueID; collectedInput.InputData.TemplatePath = template.FilePath + template.FileName; settings.PopulateZeusContext(context); template.Collect(context, settings.ScriptTimeout, collectedInput.InputData.InputItems); if (log.HasExceptions) { throw log.Exceptions[0]; } else { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; collectedInput.FilePath = saveFileDialog.FileName; collectedInput.Save(); } } MessageBox.Show(this, "Input collected and saved to file: \r\n" + collectedInput.FilePath); } catch (Exception ex) { OnErrorsOccurred(ex); } Cursor.Current = Cursors.Default; } }
public void TestMethod1() { // // TODO: Add test logic here // //Assert.AreEqual(1, 3); string dir = TestContext.TestDir; string directory = @"E:\source code\codegenerate\mygeneration\MyGeneration.Test\Test.zeus"; ZeusTemplate _template = new ZeusTemplate(directory); string sourceCode = _template.BodySegment.Code; }
private void SaveInput() { try { if (_collectInChildProcess) { this.buttonCollectInput.Enabled = false; this.Cursor = Cursors.WaitCursor; ZeusProcessManager.RecordProjectItem(this._module.RootProject.FilePath, _module.ProjectPath + "/" + SavedObject.SavedObjectName, this.SelectedTemplate.Tag.ToString(), _executionCallback); } else { //RecordProjectItem ZeusTemplate template = new ZeusTemplate(this.SelectedTemplate.Tag.ToString()); DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); ZeusContext context = new ZeusContext(); context.Log = log; SavedObject.TemplateUniqueID = template.UniqueID; SavedObject.TemplatePath = template.FilePath + template.FileName; settings.PopulateZeusContext(context); if (_module != null) { _module.PopulateZeusContext(context); _module.OverrideSavedData(SavedObject.InputItems); } if (template.Collect(context, settings.ScriptTimeout, SavedObject.InputItems)) { this._lastRecordedSelectedNode = this.SelectedTemplate; } if (log.HasExceptions) { throw log.Exceptions[0]; } } } catch (Exception ex) { mdi.ErrorsOccurred(ex); //ZeusDisplayError formError = new ZeusDisplayError(ex); //formError.SetControlsFromException(); //formError.ShowDialog(this); } Cursor.Current = Cursors.Default; }
private ZeusTemplate template; public TemplateEditorForm(ZeusTemplate template) { // // Required for Windows Form Designer support // InitializeComponent(); this.template = template; scintillaTemplateCode = new ZeusScintillaControl(ScriptLanguage.JScript); scintillaTemplateCode.AddShortcutsFromForm(this); scintillaGUICode = new ZeusScintillaControl(ScriptLanguage.JScript);
public void LoadTemplates(string selectedid) { DefaultSettings settings = DefaultSettings.Instance; ArrayList filenames = new ArrayList(); filenames.Add(settings.DefaultTemplateDirectory); ArrayList templatePaths = FileTools.GetFilenamesRecursive(filenames, this._extensions); ZeusTemplate template; TemplateListItem item; this.listBoxTemplates.Items.Clear(); foreach (string path in templatePaths) { try { template = new ZeusTemplate(FileTools.ResolvePath(path)); string ns = template.NamespacePathString.Trim(); string title = template.Title.Trim(); title = (title.Length > 0) ? title : "<unnamed>"; if (ns.Length > 0) { ns = template.NamespacePathString + "." + title; } else { ns = title; } item = new TemplateListItem(template.UniqueID, path, ns); this.listBoxTemplates.Items.Add(item); if (item.ID == selectedid) { this.listBoxTemplates.SelectedItem = item; } } catch { continue; } } if ((this.listBoxTemplates.SelectedItem == null) && (this.listBoxTemplates.Items.Count > 0)) { this.listBoxTemplates.SelectedIndex = 0; } }
public void ExecuteLoadedInput() { try { DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; openFileDialog.FilterIndex = 0; openFileDialog.RestoreDirectory = true; openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; foreach (string filename in openFileDialog.FileNames) { ZeusSavedInput savedInput = new ZeusSavedInput(filename); if (savedInput.Load()) { ZeusContext context = new ZeusContext(); context.Input.AddItems(savedInput.InputData.InputItems); context.Log = log; ZeusTemplate template = new ZeusTemplate(savedInput.InputData.TemplatePath); template.Execute(context, settings.ScriptTimeout, true); if (log.HasExceptions) { throw log.Exceptions[0]; } } } Cursor.Current = Cursors.Default; MessageBox.Show(this, "Selected files have been executed."); } } catch (Exception ex) { mdi.ErrorsOccurred(ex); //ZeusDisplayError formError = new ZeusDisplayError(ex); //formError.SetControlsFromException(); //formError.ShowDialog(this); } Cursor.Current = Cursors.Default; }
public void SaveInput(ZeusTemplate template) { try { DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); ZeusContext context = new ZeusContext(); context.Log = log; ZeusSavedInput collectedInput = new ZeusSavedInput(); collectedInput.InputData.TemplateUniqueID = template.UniqueID; collectedInput.InputData.TemplatePath = template.FilePath + template.FileName; settings.PopulateZeusContext(context); template.Collect(context, settings.ScriptTimeout, collectedInput.InputData.InputItems); if (log.HasExceptions) { throw log.Exceptions[0]; } else { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; collectedInput.FilePath = saveFileDialog.FileName; collectedInput.Save(); } } MessageBox.Show(this, "Input collected and saved to file: \r\n" + collectedInput.FilePath); } catch (Exception ex) { mdi.ErrorsOccurred(ex); //ZeusDisplayError formError = new ZeusDisplayError(ex); //formError.SetControlsFromException(); //formError.ShowDialog(this); } Cursor.Current = Cursors.Default; }
protected void AssignGroup(ZeusTemplate template, string key, StringBuilder builder) { switch (key) { case PPD_BODY_END: template.BodySegment.CodeUnparsed = builder.ToString().TrimEnd(); break; case PPD_COMMENTS_END: template.Comments = builder.ToString().TrimEnd(); break; case PPD_INTERFACE_END: template.GuiSegment.CodeUnparsed = builder.ToString().TrimEnd(); break; } }
private void SaveInput() { try { /*if (_lastRecordedSelectedIndex != this.listBoxTemplates.SelectedIndex) * { * this.SavedObject.InputItems.Clear(); * }*/ ZeusTemplate template = new ZeusTemplate(this.SelectedTemplate.Path); DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); ZeusContext context = new ZeusContext(); context.Log = log; SavedObject.TemplateUniqueID = template.UniqueID; SavedObject.TemplatePath = template.FilePath + template.FileName; settings.PopulateZeusContext(context); if (_module != null) { _module.PopulateZeusContext(context); } if (template.Collect(context, settings.ScriptTimeout, SavedObject.InputItems)) { _lastRecordedSelectedIndex = this.listBoxTemplates.SelectedIndex; } if (log.HasExceptions) { throw log.Exceptions[0]; } } catch (Exception ex) { mdi.ErrorsOccurred(ex); //ZeusDisplayError formError = new ZeusDisplayError(ex); //formError.SetControlsFromException(); //formError.ShowDialog(this); } Cursor.Current = Cursors.Default; }
public TemplateEditorForm(ZeusTemplate template) { // // Required for Windows Form Designer support // InitializeComponent(); this.template = template; scintillaTemplateCode = new ZeusScintillaControl(ScriptLanguage.JScript); scintillaTemplateCode.AddShortcutsFromForm(this); scintillaGUICode = new ZeusScintillaControl(ScriptLanguage.JScript); scintillaGUICode.AddShortcutsFromForm(this); this.tabCode.Controls.Add(this.scintillaTemplateCode); this.tabInterface.Controls.Add(this.scintillaGUICode); }
private void SaveInput() { try { ZeusTemplate template = new ZeusTemplate(this.SelectedTemplate.Tag.ToString()); DefaultSettings settings = DefaultSettings.Instance; ZeusSimpleLog log = new ZeusSimpleLog(); ZeusContext context = new ZeusContext(); context.Log = log; SavedObject.TemplateUniqueID = template.UniqueID; SavedObject.TemplatePath = template.FilePath + template.FileName; settings.PopulateZeusContext(context); if (_module != null) { _module.PopulateZeusContext(context); } if (template.Collect(context, settings.ScriptTimeout, SavedObject.InputItems)) { this._lastRecordedSelectedNode = this.SelectedTemplate; } if (log.HasExceptions) { throw log.Exceptions[0]; } } catch (Exception ex) { ZeusDisplayError formError = new ZeusDisplayError(ex); formError.SetControlsFromException(); formError.ShowDialog(this); } Cursor.Current = Cursors.Default; }
public void ExecuteLoadedInput() { bool overridden = false; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; openFileDialog.FilterIndex = 0; openFileDialog.RestoreDirectory = true; openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { ZeusSavedInput savedInput = null; ZeusTemplate template = null; if (ExecuteTemplateOverride != null) { try { foreach (string filename in openFileDialog.FileNames) { savedInput = new ZeusSavedInput(filename); if (savedInput.Load()) { template = new ZeusTemplate(savedInput.InputData.TemplatePath); overridden = ExecuteTemplateOverride(TemplateOperations.ExecuteLoadedInput, template, savedInput, _guiHandler); if (!overridden) { break; } } } } catch (Exception ex) { OnErrorsOccurred(ex); } } if (!overridden) { try { ZeusSimpleLog log = new ZeusSimpleLog(); DefaultSettings settings = DefaultSettings.Instance; Cursor.Current = Cursors.WaitCursor; foreach (string filename in openFileDialog.FileNames) { savedInput = new ZeusSavedInput(filename); if (savedInput.Load()) { ZeusContext context = new ZeusContext(); context.Input.AddItems(savedInput.InputData.InputItems); context.Log = log; template = new ZeusTemplate(savedInput.InputData.TemplatePath); template.Execute(context, settings.ScriptTimeout, true); foreach (string filePath in context.Output.SavedFiles) { this.OnGeneratedFileSaved(filePath); } if (log.HasExceptions) { throw log.Exceptions[0]; } } } Cursor.Current = Cursors.Default; MessageBox.Show(this, "Selected files have been executed."); } catch (Exception ex) { OnErrorsOccurred(ex); } Cursor.Current = Cursors.Default; } } }
protected void AssignProperty(ZeusTemplate template, string key, string val) { template.AddDirective(key, val); switch (key.ToUpper()) { case PPD_LANGUAGE: template.BodySegment.Language = template.GuiSegment.Language = val; break; case PPD_MODE: string tmp = val.ToLower(); if (tmp == MODE_TAGGED_TEMPLATE) { template.Type = ZeusConstants.Types.TEMPLATE; template.BodySegment.Mode = ZeusConstants.Modes.MARKUP; } else if (tmp == MODE_PURE_SCRIPTING) { template.Type = ZeusConstants.Types.TEMPLATE; template.BodySegment.Mode = ZeusConstants.Modes.PURE; } else if (tmp == MODE_TEMPLATE_GROUP) { template.Type = ZeusConstants.Types.GROUP; template.BodySegment.Mode = ZeusConstants.Modes.MARKUP; } else { //TODO: *** Add custom error handling here! throw new ZeusParseException(template, ZeusParseError.InvalidTemplateMode, "InvalidTemplateMode"); } break; case PPD_ENGINE: if (val == "MicrosoftScript") { val = ZeusConstants.Engines.MICROSOFT_SCRIPT; } template.BodySegment.Engine = val; template.GuiSegment.Engine = val; break; case PPD_OUTPUT_LANGUAGE: template.OutputLanguage = val; break; case PPD_UNIQUEID: template.UniqueID = val; break; case PPD_TITLE: template.Title = val; break; case PPD_GROUP: template.NamespacePathString = val; break; case PPD_START_TAG: template.TagStart = val; break; case PPD_END_TAG: template.TagEnd = val; break; case PPD_TEMPLATE_INCLUDE: template.AddIncludedTemplatePath(val); break; /*case PPD_BODY_INCLUDE: * template.AddBodyIncludePath(val); * break; * case PPD_INTERFACE_INCLUDE: * template.AddInterfaceIncludePath(val); * break;*/ } }
public void ExecuteTemplate(ZeusTemplate template) { bool overridden = false; if (ExecuteTemplateOverride != null) { overridden = ExecuteTemplateOverride(TemplateOperations.Execute, template, null, _guiHandler); } if (!overridden) { Cursor.Current = Cursors.WaitCursor; DefaultSettings settings = DefaultSettings.Instance; IZeusContext context = new ZeusContext(); IZeusGuiControl guiController = context.Gui; IZeusOutput zout = context.Output; settings.PopulateZeusContext(context); bool exceptionOccurred = false; bool result = false; try { template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.Timeout = settings.ScriptTimeout; template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.SetShowGuiHandler(_guiHandler); result = template.GuiSegment.Execute(context); template.GuiSegment.ZeusScriptingEngine.ExecutionHelper.Cleanup(); if (result) { template.BodySegment.ZeusScriptingEngine.ExecutionHelper.Timeout = settings.ScriptTimeout; result = template.BodySegment.Execute(context); foreach (string filePath in context.Output.SavedFiles) { this.OnGeneratedFileSaved(filePath); } template.BodySegment.ZeusScriptingEngine.ExecutionHelper.Cleanup(); } } catch (Exception ex) { OnErrorsOccurred(ex); exceptionOccurred = true; } Cursor.Current = Cursors.Default; if (!exceptionOccurred && result) { if (settings.EnableClipboard) { try { Clipboard.SetDataObject(zout.text, true); } catch { // HACK: For some reason, Clipboard.SetDataObject throws an error on some systems. I'm cathhing it and doing nothing for now. } } MessageBox.Show("Successfully rendered Template: " + template.Title); } } }
protected void LoadIntoTemplate(StreamReader reader, string filepath, ZeusTemplate template) { char[] whitespace = new char[4] { '\n', '\r', '\t', ' ' }; string key, val, line; int tagLength = TAG_START_PPD.Length; int x, y; bool inGroupMode = false; string startGroupTag = string.Empty; StringBuilder builder = null; if (filepath != null) { int lastIndex = filepath.LastIndexOf('\\'); template.FileName = filepath.Substring(lastIndex + 1); template.FilePath = filepath.Substring(0, lastIndex + 1); } line = reader.ReadLine(); while (line != null) { if (line.StartsWith(TAG_START_PPD)) { x = line.IndexOfAny(whitespace); if (x < 0) { x = line.Length; } y = x - tagLength; key = line.Substring(tagLength, y); if (!inGroupMode) { if (IsGroupStartTag(key)) { inGroupMode = true; startGroupTag = key; builder = new StringBuilder(); } else { val = line.Substring(x).Trim(); AssignProperty(template, key, val); } } else { if (IsGroupEndTag(key)) { AssignGroup(template, key, builder); inGroupMode = false; startGroupTag = string.Empty; } else { //TODO: *** Could put a warning here. Possibly have a warnings collection. Maybe a CompileInfo class? builder.Append(line + "\r\n"); } } } else if (inGroupMode) { builder.Append(line + "\r\n"); } line = reader.ReadLine(); } }
private string IncludeFileCompile(string filename) { IZeusTemplate compilerTemplate = new ZeusTemplate(filename); return(compilerTemplate.BodySegment.Code); }
private bool templateBrowserControl1_ExecuteOverride(TemplateOperations operation, ZeusTemplate template, ZeusSavedInput input, ShowGUIEventHandler guiEventHandler) { switch (operation) { case TemplateOperations.Execute: ZeusProcessManager.ExecuteTemplate(template.FullFileName, processCallback); break; case TemplateOperations.ExecuteLoadedInput: ZeusProcessManager.ExecuteSavedInput(input.FilePath, processCallback); break; case TemplateOperations.SaveInput: SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Zues Input Files (*.zinp)|*.zinp"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { ZeusProcessManager.RecordTemplateInput(template.FullFileName, saveFileDialog.FileName, processCallback); } break; } return(true); }
static public void WebUpdate(string id, string path, bool isGrouped) { CultureInfo culture = new CultureInfo("en-US"); string url = ZeusConfig.Current.WebUpdateUrl + "?action=update&id=" + id; XmlDocument xmldoc = Zeus.HttpTools.GetXmlFromUrl(url, DefaultSettings.Instance.WebProxy); XmlNodeList nodes = xmldoc.GetElementsByTagName("template"); if (nodes.Count > 0) { XmlNode node = nodes[0]; DateTime updateDate = DateTime.MinValue; try { updateDate = Convert.ToDateTime(node.Attributes["lastupdated"].Value, culture); } catch { try { updateDate = Convert.ToDateTime(node.Attributes["lastupdated"].Value); } catch { updateDate = DateTime.MinValue; } } long length = Convert.ToInt64(node.Attributes["length"].Value) + 3; byte[] bytes = Convert.FromBase64String(node.InnerText); FileInfo info = new FileInfo(path); long localFileSize = 0; DateTime localFileUpdateDate = DateTime.MinValue; if (info.Exists) { localFileSize = info.Length; localFileUpdateDate = info.LastWriteTime; } DialogResult result = DialogResult.Yes; if (!isGrouped && info.Exists) { string msg = "The remote template was last updated on {0}\r\nand the local template was last updated on {1}.\r\nAre you sure you want to update?"; result = MessageBox.Show(String.Format(msg, updateDate, localFileUpdateDate), "Update Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); } if (result == DialogResult.Yes) { MemoryStream memorystream = new MemoryStream(bytes); ZeusTemplate template = new ZeusTemplate(new StreamReader(memorystream), path); template.Save(); // Save related files with the template FileInfo finfo = new FileInfo(path); GetRelatedFiles(id, template.FilePath); } } else { nodes = xmldoc.GetElementsByTagName("error"); if (nodes.Count > 0) { XmlNode node = nodes[0]; string errorText = node.InnerText; if (!isGrouped) { MessageBox.Show(errorText); } } } }
public void ExecuteTemplate(ZeusTemplate template) { this.Cursor = Cursors.WaitCursor; DefaultSettings settings = new DefaultSettings(); ZeusInput zin = new ZeusInput(); ZeusOutput zout = new ZeusOutput(); Hashtable objects = new Hashtable(); ZeusGuiContext guicontext; ZeusTemplateContext bodycontext = null; dbRoot myMeta = new dbRoot(); // Set the global variables for the default template/output paths zin["defaultTemplatePath"] = settings.DefaultTemplateDirectory; zin["defaultOutputPath"] = settings.DefaultOutputDirectory; string driver, connectionString; //if there is a connection string set, it in the input section here. if (settings.DbDriver != string.Empty) { driver = settings.DbDriver; connectionString = settings.ConnectionString; zin["dbDriver"] = driver; zin["dbConnectionString"] = connectionString; try { // Try to connect to the DB with MyMeta (using default connection info) myMeta.Connect(settings.DbDriver, settings.ConnectionString); // Set DB global variables and also input variables if (settings.DbTarget != string.Empty) { myMeta.DbTarget = settings.DbTarget; } if (settings.DbTargetMappingFile != string.Empty) { myMeta.DbTargetMappingFileName = settings.DbTargetMappingFile; } if (settings.LanguageMappingFile != string.Empty) { myMeta.LanguageMappingFileName = settings.LanguageMappingFile; } if (settings.DbTarget != string.Empty) { myMeta.DbTarget = settings.DbTarget; } if (settings.Language != string.Empty) { myMeta.Language = settings.Language; } if (settings.UserMetaDataFileName != string.Empty) { myMeta.UserMetaDataFileName = settings.UserMetaDataFileName; } } catch { // Give them an empty MyMeta myMeta = new dbRoot(); } } bool exceptionOccurred = false; bool result = false; try { // Add any objects here that need to be embedded in the script. objects.Add("MyMeta", myMeta); guicontext = new ZeusGuiContext(zin, new GuiController(), objects); template.GuiSegment.ZeusScriptingEngine.Executioner.ScriptTimeout = settings.ScriptTimeout; template.GuiSegment.ZeusScriptingEngine.Executioner.SetShowGuiHandler(new ShowGUIEventHandler(DynamicGUI_Display)); result = template.GuiSegment.Execute(guicontext); if (result) { bodycontext = new ZeusTemplateContext(guicontext); result = template.BodySegment.Execute(bodycontext); } } catch (Exception ex) { ZeusDisplayError formError = new ZeusDisplayError(ex); formError.SetControlsFromException(); formError.ShowDialog(this); exceptionOccurred = true; } if (!exceptionOccurred && result) { MessageBox.Show("Successfully rendered template: " + template.Title); } this.Cursor = Cursors.Default; }
using System;
private string IncludeFileCompile(string filename) { IZeusTemplate compilerTemplate = new ZeusTemplate(filename); return compilerTemplate.BodySegment.Code; }