Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
		/// <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;
		}