Beispiel #1
0
        private string IncludeTemplate(IZeusTemplate template, string filename)
        {
            string returnval = string.Empty;

            if (File.Exists(filename))
            {
                IZeusTemplate includedTemplate = template.LoadTemplateFromFile(filename);
                if ((includedTemplate.UniqueID != template.UniqueID) &&
                    (includedTemplate.BodySegment.Language != template.BodySegment.Language))
                {
                    returnval = includedTemplate.BodySegment.Code;
                }
            }
            else
            {
                //TODO: Could throw an error here.
            }

            return(returnval);
        }
 public ZeusRuntimeException(IZeusTemplate template, Exception exception, bool isTemplateScript)
     : base(template, "Template Runtime Exception", exception) 
 {
     this._isTemplateScript = isTemplateScript;
 }
 public ZeusException(IZeusTemplate template, string message, Exception exception)
     : base(message, exception)
 {
     this._template = template;
 }
		public SavedTemplateInput(string objectName, IZeusTemplate template, IZeusInput input) : this(objectName, template)
		{
			_inputItems = new InputItemCollection(input);
		}
		public SavedTemplateInput(string objectName, IZeusTemplate template)
		{
			_savedObjectName = objectName;
			_templateUniqueID = template.UniqueID;
			_templatePath = template.FilePath + template.FileName;
		}
Beispiel #6
0
 public ZeusRuntimeException(IZeusTemplate template, Exception exception, bool isTemplateScript)
     : base(template, "Template Runtime Exception", exception)
 {
     this._isTemplateScript = isTemplateScript;
 }
        public ZeusParseException(IZeusTemplate template, ZeusParseError parseError, string message)
            : base(template, message)
		{
			this._parseError = parseError;
		}
Beispiel #8
0
 public ZeusExecutionException(IZeusTemplate template, IZeusExecutionError[] errors, bool isTemplateScript)
     : base(template, "Template Execution Error")
 {
     this._errors           = errors;
     this._isTemplateScript = isTemplateScript;
 }
using System;
Beispiel #10
0
 public ZeusParseException(IZeusTemplate template, ZeusParseError parseError, string message)
     : base(template, message)
 {
     this._parseError = parseError;
 }
        public ZeusExecutionException(IZeusTemplate template, IZeusExecutionError[] errors, bool isTemplateScript)
            : base(template, "Template Execution Error")
		{
			this._errors = errors;
			this._isTemplateScript = isTemplateScript;
		}
Beispiel #12
0
        static protected void ExecuteCode(IZeusExecutionHelper helper, IZeusTemplate template, IZeusContext context, ArrayList templateGroupIds)
        {
            if (!template.BodySegment.IsEmpty)
            {
                try
                {
                    // Execute Template Body
                    helper.EngineExecuteCode(template.BodySegment, context);

                    if (helper.HasErrors)
                    {
                        IZeusExecutionError[] errors = helper.Errors;
                        helper.ClearErrors();
                        throw new ZeusExecutionException(template, errors, true);
                    }
                }
                catch (Exception ex)
                {
                    throw new ZeusRuntimeException(template, ex, true);
                }
            }

            if (template.Type == ZeusConstants.Types.GROUP)
            {
                if (template.IncludedTemplates.Count > 0)
                {
                    // Execute Template Body
                    if (templateGroupIds.Contains(template.UniqueID))
                    {
                        return;
                    }

                    templateGroupIds.Add(template.UniqueID);

                    foreach (ZeusTemplate childTemplate in template.IncludedTemplates)
                    {
                        if (childTemplate.UniqueID != template.UniqueID)
                        {
                            //clear the output buffer before executing the next template!
                            context.Output.clear();

                            //Push the current template onto the Execution stack
                            if (context is ZeusContext)
                            {
                                ((ZeusContext)context).TemplateStack.Push(childTemplate);
                            }

                            try
                            {
                                IZeusScriptingEngine engine = ZeusFactory.GetEngine(childTemplate.BodySegment.Engine);
                                ExecuteCode(engine.ExecutionHelper, childTemplate, context, templateGroupIds);
                            }
                            finally
                            {
                                //Pop the current template off of the Execution stack
                                if (context is ZeusContext)
                                {
                                    ((ZeusContext)context).TemplateStack.Pop();
                                }
                            }
                        }
                    }
                }
            }
        }
		static protected void ExecuteCode(IZeusExecutionHelper helper, IZeusTemplate template, IZeusContext context, ArrayList templateGroupIds) 
		{
            if (!template.BodySegment.IsEmpty)
            {
                try
                {
                    // Execute Template Body
                    helper.EngineExecuteCode(template.BodySegment, context);

                    if (helper.HasErrors)
                    {
                        IZeusExecutionError[] errors = helper.Errors;
                        helper.ClearErrors();
                        throw new ZeusExecutionException(template, errors, true);
                    }
                }
                catch (Exception ex)
                {
                    throw new ZeusRuntimeException(template, ex, true);
                }
            }
			
			if (template.Type == ZeusConstants.Types.GROUP) 
			{
				if (template.IncludedTemplates.Count > 0) 
				{
					// Execute Template Body
					if (templateGroupIds.Contains(template.UniqueID)) return;

					templateGroupIds.Add(template.UniqueID);

					foreach (ZeusTemplate childTemplate in template.IncludedTemplates)
					{
						if (childTemplate.UniqueID != template.UniqueID) 
						{
							//clear the output buffer before executing the next template!
							context.Output.clear();

							//Push the current template onto the Execution stack
							if (context is ZeusContext)
							{
								((ZeusContext)context).TemplateStack.Push(childTemplate);
							}
							
							try 
							{
								IZeusScriptingEngine engine = ZeusFactory.GetEngine(childTemplate.BodySegment.Engine);
								ExecuteCode(engine.ExecutionHelper, childTemplate, context, templateGroupIds);
							}
							finally 
							{
								//Pop the current template off of the Execution stack
								if (context is ZeusContext)
								{
									((ZeusContext)context).TemplateStack.Pop();
								}
							}
						}
					}
				}
			}
		}
 public SavedTemplateInput(string objectName, IZeusTemplate template, IZeusInput input) : this(objectName, template)
 {
     _inputItems = new InputItemCollection(input);
 }
 public SavedTemplateInput(string objectName, IZeusTemplate template)
 {
     _savedObjectName  = objectName;
     _templateUniqueID = template.UniqueID;
     _templatePath     = template.FilePath + template.FileName;
 }
Beispiel #16
0
 public ZeusException(IZeusTemplate template, string message, Exception exception)
     : base(message, exception)
 {
     this._template = template;
 }