//--------------------------------------------------------------------------------------------------------------------- public static TaskTemplate FromXml(IfyContext context, XmlElement templateElem) { TaskTemplate result = new TaskTemplate(context); result.LoadFromXml(templateElem); return(result); }
//--------------------------------------------------------------------------------------------------------------------- /// <summary>Gets the service parameters for the specified task template.</summary> /*! * /// <param name="parameters">the service parameter collection to be filled</param> * /// <param name="template">the task template referring to the service to be used </param> * /// <param name="assignValueSets">determines whether value sets are instantiated for the parameters that maintain value sets </param> */ protected void GetParameters(RequestParameterCollection parameters, TaskTemplate template, bool assignValueSets) { try { template.Service.GetParameters(); if (template.AllowInputFilesParameter) { for (int i = 0; i < parameters.Count; i++) { RequestParameter param = parameters[i]; if (param.Source == "dataset") { param.Optional = !template.ForceInputFilesParameter; } } } /*if (template.Service.HasDynamicDefinition) { * bool isSwitchValueSet = false; * * for (int i = 0; i < parameters.Count; i++) { * RequestParameter param = parameters[i]; * if (!param.IsSwitch) continue; * * if (template.FixedParameters.Contains(param.Name)) param.Value = template.FixedParameters[param.Name].Value; * if (param.Value != null) isSwitchValueSet = true; * } * * if (isSwitchValueSet) template.Service.GetDynamicParameters(parameters, false, assignValueSets, true); * * }*/// TODO-NEW-SERVICE if (OutputFormatParameterName != null) { FileListParameterValueSet formatValueSet = new FileListParameterValueSet(context, template.Service, OutputFormatParameterName, String.Format("{0}/*.xsl", XslDirectory)); if (formatValueSet.GetValues().Length != 0) { fileListParameter = new RequestParameter(context, template.Service, OutputFormatParameterName, "select", "XSL Transformation for Output", null); fileListParameter.Optional = true; fileListParameter.ValueSet = formatValueSet; parameters.Add(fileListParameter); } } } catch (Exception e) { ServerResponsibility = true; throw new WpsNoApplicableCodeException(e.Message); } }
//--------------------------------------------------------------------------------------------------------------------- /// <summary>Obtains information bout a task template from the configuration file.</summary> /// <returns>A TaskTemplate instance matching the specified template name.</returns> /// <param name="templateName">The name of the TaskTemplate to be returned.</param> public TaskTemplate ReadConfigurationFile(string templateName) { if (ConfigurationFilename == null || !File.Exists(ConfigurationFilename)) { throw new FileNotFoundException("Application configuration file not defined or not found", ConfigurationFilename); } XmlDocument configDoc = new XmlDocument(); XmlElement configElem = null; //bool success = false; try { configDoc.Load(ConfigurationFilename); } catch (Exception e) { throw new FileLoadException("Could not load process configurations" + (context.UserLevel == UserLevel.Administrator ? ": " + e.Message : String.Empty), ConfigurationFilename); } if (!configurationRead) { if ((configElem = configDoc.SelectSingleNode("/application/configuration") as XmlElement) != null) { string filename; int level = 0; DateTime now = DateTime.UtcNow; for (int i = 0; i < configElem.ChildNodes.Count; i++) { XmlElement elem = configElem.ChildNodes[i] as XmlElement; if (elem == null) { continue; } switch (elem.Name) { case "log": if (elem.HasAttribute("level")) { Int32.TryParse(elem.Attributes["level"].Value, out level); } context.LogLevel = level; if (level > 0 && elem.HasAttribute("file")) { filename = elem.Attributes["file"].Value; context.LogFilename = (filename == null ? null : filename.Replace("$(DATE)", now.ToString("yyyyMMdd"))); } break; case "debug": if (elem.HasAttribute("level")) { Int32.TryParse(elem.Attributes["level"].Value, out level); } context.DebugLevel = level; if (level > 0 && elem.HasAttribute("file")) { filename = elem.Attributes["file"].Value; context.DebugFilename = (filename == null ? null : filename.Replace("$(DATE)", now.ToString("yyyyMMdd"))); } break; case "alert": context.SetAlertInformation(Identifier, elem); break; } } //context.RefreshLoggingInformation(); configurationRead = true; } else if (context.UserLevel == UserLevel.Administrator) { throw new Exception("Invalid application configuration"); } } if (templateName == null) { return(null); } XmlElement templateElem = configDoc.SelectSingleNode("/application/template[@name='" + templateName.Replace("'", "''") + "']") as XmlElement; if (templateElem == null) { throw new EntityNotFoundException("The specified task template was not found"); } return(TaskTemplate.FromXml(context, templateElem)); }