/// <summary> /// Creates a FunctionInfo object from the given XML. Because it /// has to resolve Type objects, this should only be done after /// all referenced assemblies are loaded into the current AppDomain. /// </summary> /// <param name="rootElement"></param> /// <returns></returns> public virtual FunctionInfo ReadFunction(XmlNode rootElement) { if (rootElement == null) { throw new DeserialisationException("Could not find Function node"); } CheckVersion(rootElement); NodeProcessor proc = new NodeProcessor(rootElement); var name = proc.GetString("Name"); bool isTemplateFunc = proc.GetBool("IsTemplateFunction"); bool isExtMethod = proc.GetBool("IsExtensionMethod"); var extendedType = proc.GetString("ExtendedType"); var scriptLang = proc.GetEnum <SyntaxEditorHelper.ScriptLanguageTypes>("ScriptLanguage"); var description = proc.GetString("Description"); var category = proc.GetString("Category"); var bodyText = proc.GetString("Body"); var returnType = GetTypeNamed(proc.GetString("ReturnType")); var templateReturnLang = proc.GetString("TemplateReturnLanguage"); FunctionInfo fi = new FunctionInfo(name, returnType, bodyText, isTemplateFunc, scriptLang, description, templateReturnLang, category, isExtMethod, extendedType); ProcessFunctionParameters(fi, rootElement); return(fi); }
public IKey ProcessKeyNode(XmlNode node, ITable parent, IDatabase db) { IKey key = new Key(); key.Parent = parent; ProcessScriptBase(key, node); /* * <Keytype>Primary</Keytype> * <Columns> * <ColumnName>ColumnT11</ColumnName> * </Columns> * <ReferencedKey> * <KeyName>ForeignKey</KeyName> * <TableName>Table2</TableName> * </ReferencedKey> */ NodeProcessor proc = new NodeProcessor(node); key.Keytype = proc.GetEnum <DatabaseKeyType>("Keytype"); key.IsUnique = proc.GetBool("IsUnique"); var columnNodeList = node.SelectNodes("Columns/ColumnName"); if (columnNodeList != null) { foreach (XmlNode columnRef in columnNodeList) { key.AddColumn(columnRef.InnerText); } } return(key); }
protected virtual void ProcessConfig(XmlNode node, IDesignerProject project, string projectFilename) { NodeProcessor proc = new NodeProcessor(node); string relativeCompilePath = proc.GetString("RelativeCompilePath"); project.CompileFolderName = controller.ToAbsolutePath(relativeCompilePath, projectFilename); project.Version = proc.GetString("Version"); project.ProjType = proc.GetEnum <ProjectTypes>("ProjectType"); string relativeDebugProjectFile = proc.GetString("DebugProjectFile"); project.DebugProjectFile = controller.ToAbsolutePath(relativeDebugProjectFile, projectFilename); var relativeTestGenerateDirectory = proc.GetString("TestGenerateDirectory"); project.TestGenerateDirectory = controller.ToAbsolutePath(relativeTestGenerateDirectory, projectFilename); var namespaceNodes = node.SelectNodes("IncludedNamespaces/Namespace"); if (namespaceNodes != null) { foreach (XmlNode namespaceNode in namespaceNodes) { project.AddNamespace(namespaceNode.InnerText); } } var refereceNodes = node.SelectNodes("References/Reference"); ProcessProjectReferences(refereceNodes, project, projectFilename); }
public IIndex ProcessIndexNode(XmlNode node, ITable parent, IDatabase db) { IIndex index = new Index(); index.Parent = parent; ProcessScriptBase(index, node); /* * <IsUnique>True</IsUnique> * <IsClustered>False</IsClustered> * <Datatype>Unique</Datatype> * <Columns> * <ColumnName>ColumnT13</ColumnName> * </Columns> */ NodeProcessor proc = new NodeProcessor(node); index.IsUnique = proc.GetBool("IsUnique"); index.IsClustered = proc.GetBool("IsClustered"); index.IndexType = proc.GetEnum <DatabaseIndexType>("Datatype"); var columnNodeList = node.SelectNodes("Columns/ColumnName"); if (columnNodeList != null) { foreach (XmlNode columnRef in columnNodeList) { index.AddColumn(columnRef.InnerText); } } return(index); }
public IKey ProcessKeyNode(XmlNode node, ITable parent, IDatabase db) { IKey key = new Key(); key.Parent = parent; ProcessScriptBase(key, node); /* <Keytype>Primary</Keytype> <Columns> <ColumnName>ColumnT11</ColumnName> </Columns> <ReferencedKey> <KeyName>ForeignKey</KeyName> <TableName>Table2</TableName> </ReferencedKey> */ NodeProcessor proc = new NodeProcessor(node); key.Keytype = proc.GetEnum<DatabaseKeyType>("Keytype"); key.IsUnique = proc.GetBool("IsUnique"); var columnNodeList = node.SelectNodes("Columns/ColumnName"); if (columnNodeList != null) { foreach (XmlNode columnRef in columnNodeList) { key.AddColumn(columnRef.InnerText); } } return key; }
public IIndex ProcessIndexNode(XmlNode node, ITable parent, IDatabase db) { IIndex index = new Index(); index.Parent = parent; ProcessScriptBase(index, node); /* <IsUnique>True</IsUnique> <IsClustered>False</IsClustered> <Datatype>Unique</Datatype> <Columns> <ColumnName>ColumnT13</ColumnName> </Columns> */ NodeProcessor proc = new NodeProcessor(node); index.IsUnique = proc.GetBool("IsUnique"); index.IsClustered = proc.GetBool("IsClustered"); index.IndexType = proc.GetEnum<DatabaseIndexType>("Datatype"); var columnNodeList = node.SelectNodes("Columns/ColumnName"); if (columnNodeList != null) foreach (XmlNode columnRef in columnNodeList) index.AddColumn(columnRef.InnerText); return index; }
protected virtual void ProcessConfig(XmlNode node, IDesignerProject project, string projectFilename) { NodeProcessor proc = new NodeProcessor(node); string relativeCompilePath = proc.GetString("RelativeCompilePath"); project.CompileFolderName = controller.ToAbsolutePath(relativeCompilePath, projectFilename); project.Version = proc.GetString("Version"); project.ProjType = proc.GetEnum<ProjectTypes>("ProjectType"); string relativeDebugProjectFile = proc.GetString("DebugProjectFile"); project.DebugProjectFile = controller.ToAbsolutePath(relativeDebugProjectFile, projectFilename); var relativeTestGenerateDirectory = proc.GetString("TestGenerateDirectory"); project.TestGenerateDirectory = controller.ToAbsolutePath(relativeTestGenerateDirectory, projectFilename); var namespaceNodes = node.SelectNodes("IncludedNamespaces/Namespace"); if (namespaceNodes != null) foreach (XmlNode namespaceNode in namespaceNodes) project.AddNamespace(namespaceNode.InnerText); var refereceNodes = node.SelectNodes("References/Reference"); ProcessProjectReferences(refereceNodes, project, projectFilename); }
/// <summary> /// Creates a FunctionInfo object from the given XML. Because it /// has to resolve Type objects, this should only be done after /// all referenced assemblies are loaded into the current AppDomain. /// </summary> /// <param name="rootElement"></param> /// <returns></returns> public virtual FunctionInfo ReadFunction(XmlNode rootElement) { if (rootElement == null) throw new DeserialisationException("Could not find Function node"); CheckVersion(rootElement); NodeProcessor proc = new NodeProcessor(rootElement); var name = proc.GetString("Name"); bool isTemplateFunc = proc.GetBool("IsTemplateFunction"); bool isExtMethod = proc.GetBool("IsExtensionMethod"); var extendedType = proc.GetString("ExtendedType"); var scriptLang = proc.GetEnum<SyntaxEditorHelper.ScriptLanguageTypes>("ScriptLanguage"); var description = proc.GetString("Description"); var category = proc.GetString("Category"); var bodyText = proc.GetString("Body"); var returnType = GetTypeNamed(proc.GetString("ReturnType")); var templateReturnLang = proc.GetString("TemplateReturnLanguage"); FunctionInfo fi = new FunctionInfo(name, returnType, bodyText, isTemplateFunc, scriptLang, description, templateReturnLang, category, isExtMethod, extendedType); ProcessFunctionParameters(fi, rootElement); return fi; }