/// <summary> /// </summary> /// <param name="model"></param> /// <param name="cls"></param> /// <param name="definition"></param> /// <returns></returns> public SqlScript Setup(PersistentModel model, IBSharpClass cls, XElement definition) { Model = model; MyClass = cls; Definition = definition; Name = definition.Attr("code"); Comment = definition.Attr("name"); External = definition.Attr("external"); Position = definition.Attr("position", "After").To <ScriptPosition>(); Mode = definition.Attr("mode", "Create").To <ScriptMode>(); DbDialect = definition.Attr("dialect", "Ansi").To <DbDialect>(); if (string.IsNullOrWhiteSpace(definition.Value) && string.IsNullOrWhiteSpace(External)) { External = Name; } if (!string.IsNullOrWhiteSpace(External) && !External.EndsWith(".sql")) { External += ".sql"; } XElement[] subscripts = definition.Elements("script").ToArray(); if (0 == subscripts.Length) { if (string.IsNullOrWhiteSpace(External)) { Text = definition.Value; } else { Text = model.ResolveExternalContent(definition, External); } } else { foreach (XElement subscriptdef in definition.Elements("script")) { var subscript = new SqlScript(); subscript.Parent = this; subscript.Setup(Model, cls, subscriptdef); SubScripts.Add(subscript); } } return(this); }
/// <summary> /// </summary> /// <param name="model"></param> /// <param name="cls"></param> /// <param name="definition"></param> /// <returns></returns> public SqlScript Setup(PersistentModel model, IBSharpClass cls, XElement definition){ Model = model; MyClass = cls; Definition = definition; Name = definition.Attr("code"); Comment = definition.Attr("name"); External = definition.Attr("external"); Position = definition.Attr("position", "After").To<ScriptPosition>(); Mode = definition.Attr("mode", "Create").To<ScriptMode>(); DbDialect = definition.Attr("dialect", "Ansi").To<DbDialect>(); if (string.IsNullOrWhiteSpace(definition.Value) && string.IsNullOrWhiteSpace(External)){ External = Name; } if (!string.IsNullOrWhiteSpace(External) && !External.EndsWith(".sql")){ External += ".sql"; } XElement[] subscripts = definition.Elements("script").ToArray(); if (0 == subscripts.Length){ if (string.IsNullOrWhiteSpace(External) ){ Text = definition.Value; } else{ Text = model.ResolveExternalContent(definition, External); } } else{ foreach (XElement subscriptdef in definition.Elements("script")){ var subscript = new SqlScript(); subscript.Parent = this; subscript.Setup(Model, cls, subscriptdef); SubScripts.Add(subscript); } } return this; }