using System; using System.Collections.Generic; using OpenDBDiff.Schema.Model; namespace OpenDBDiff.Schema.SQLServer.Generates.Options { public class SqlOptionDefault : Schema.Model.IOptionsContainer { private string defaultIntegerValue = "0"; private string defaultRealValue = "0.0"; private string defaultTextValue = "''"; private string defaultDateValue = "getdate()"; private string defaultVariantValue = "''"; private string defaultNTextValue = "N''"; private string defaultBlobValue = "0x"; private string defaultUniqueValue = "NEWID()"; private Boolean useDefaultValueIfExists = true; private string defaultTime = "00:00:00"; private string defaultXml = ""; public SqlOptionDefault(IOptionsContainer optionsContainer) { var options = optionsContainer.GetOptions(); defaultIntegerValue = options["defaultIntegerValue"]; defaultRealValue = options["defaultRealValue"]; defaultTextValue = options["defaultTextValue"]; defaultDateValue = options["defaultDateValue"]; defaultVariantValue = options["defaultVariantValue"]; defaultNTextValue = options["defaultNTextValue"]; defaultBlobValue = options["defaultBlobValue"]; defaultUniqueValue = options["defaultUniqueValue"]; useDefaultValueIfExists = bool.Parse(options["useDefaultValueIfExists"]); defaultTime = options["defaultTime"]; defaultXml = options["defaultXml"]; } public SqlOptionDefault() { } public string DefaultXml { get { return defaultXml; } set { defaultXml = value; } } public string DefaultTime { get { return defaultTime; } set { defaultTime = value; } } public IDictionary GetOptions() { Dictionary options = new Dictionary(); options.Add("defaultIntegerValue", defaultIntegerValue); options.Add("defaultRealValue", defaultRealValue); options.Add("defaultTextValue", defaultTextValue); options.Add("defaultDateValue", defaultDateValue); options.Add("defaultVariantValue", defaultVariantValue); options.Add("defaultNTextValue", defaultNTextValue); options.Add("defaultBlobValue", defaultBlobValue); options.Add("defaultUniqueValue", defaultUniqueValue); options.Add("useDefaultValueIfExists", useDefaultValueIfExists.ToString()); options.Add("defaultTime", defaultTime); options.Add("defaultXml", defaultXml); return options; } /// /// Gets or sets a value indicating whether use default value if exists. /// /// /// true if use default value if exists; otherwise, false. /// public Boolean UseDefaultValueIfExists { get { return useDefaultValueIfExists; } set { useDefaultValueIfExists = value; } } /// /// Gets or sets the default unique (uniqueidentifier) values. /// /// The default unique value. public string DefaultUniqueValue { get { return defaultUniqueValue; } set { defaultUniqueValue = value; } } /// /// Gets or sets the default BLOB (varbinary,image, bynary) values. /// /// The default BLOB value. public string DefaultBlobValue { get { return defaultBlobValue; } set { defaultBlobValue = value; } } /// /// Gets or sets the default Unicode text (nvarchar,nchar,ntext) values. /// /// The default N text value. public string DefaultNTextValue { get { return defaultNTextValue; } set { defaultNTextValue = value; } } /// /// Gets or sets the default sql_variant values. /// /// The default variant value. public string DefaultVariantValue { get { return defaultVariantValue; } set { defaultVariantValue = value; } } /// /// Gets or sets the default date (datetime,smalldatetime) values. /// /// The default date value. public string DefaultDateValue { get { return defaultDateValue; } set { defaultDateValue = value; } } /// /// Gets or sets the default text (varchar,char,text) values. /// /// The default text value. public string DefaultTextValue { get { return defaultTextValue; } set { defaultTextValue = value; } } /// /// Gets or sets the default real (decimal,money,numeric,float) value. /// /// The default real value. public string DefaultRealValue { get { return defaultRealValue; } set { defaultRealValue = value; } } /// /// Gets or sets the default integer (int, smallint, bigint, tinyint, bit) value. /// /// The default integer value. public string DefaultIntegerValue { get { return defaultIntegerValue; } set { defaultIntegerValue = value; } } } }