Exemplo n.º 1
0
        //---------------------------------------------------------------------------------------------------------------------

        public static TaskTemplate FromXml(IfyContext context, XmlElement templateElem)
        {
            TaskTemplate result = new TaskTemplate(context);

            result.LoadFromXml(templateElem);
            return(result);
        }
Exemplo n.º 2
0
        //---------------------------------------------------------------------------------------------------------------------

        /// <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);
            }
        }
Exemplo n.º 3
0
        //---------------------------------------------------------------------------------------------------------------------

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