You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
5.7 KiB

using System;
using System.Collections.Generic;
using OpenDBDiff.Schema.Model;
namespace OpenDBDiff.Schema.SQLServer.Generates.Options
{
public class SqlOptionDefault : Schema.Model.IOptionsContainer<string>
{
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<string> 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<string, string> GetOptions()
{
Dictionary<string, string> options = new Dictionary<string, string>();
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;
}
/// <summary>
/// Gets or sets a value indicating whether use default value if exists.
/// </summary>
/// <value>
/// <c>true</c> if use default value if exists; otherwise, <c>false</c>.
/// </value>
public Boolean UseDefaultValueIfExists
{
get { return useDefaultValueIfExists; }
set { useDefaultValueIfExists = value; }
}
/// <summary>
/// Gets or sets the default unique (uniqueidentifier) values.
/// </summary>
/// <value>The default unique value.</value>
public string DefaultUniqueValue
{
get { return defaultUniqueValue; }
set { defaultUniqueValue = value; }
}
/// <summary>
/// Gets or sets the default BLOB (varbinary,image, bynary) values.
/// </summary>
/// <value>The default BLOB value.</value>
public string DefaultBlobValue
{
get { return defaultBlobValue; }
set { defaultBlobValue = value; }
}
/// <summary>
/// Gets or sets the default Unicode text (nvarchar,nchar,ntext) values.
/// </summary>
/// <value>The default N text value.</value>
public string DefaultNTextValue
{
get { return defaultNTextValue; }
set { defaultNTextValue = value; }
}
/// <summary>
/// Gets or sets the default sql_variant values.
/// </summary>
/// <value>The default variant value.</value>
public string DefaultVariantValue
{
get { return defaultVariantValue; }
set { defaultVariantValue = value; }
}
/// <summary>
/// Gets or sets the default date (datetime,smalldatetime) values.
/// </summary>
/// <value>The default date value.</value>
public string DefaultDateValue
{
get { return defaultDateValue; }
set { defaultDateValue = value; }
}
/// <summary>
/// Gets or sets the default text (varchar,char,text) values.
/// </summary>
/// <value>The default text value.</value>
public string DefaultTextValue
{
get { return defaultTextValue; }
set { defaultTextValue = value; }
}
/// <summary>
/// Gets or sets the default real (decimal,money,numeric,float) value.
/// </summary>
/// <value>The default real value.</value>
public string DefaultRealValue
{
get { return defaultRealValue; }
set { defaultRealValue = value; }
}
/// <summary>
/// Gets or sets the default integer (int, smallint, bigint, tinyint, bit) value.
/// </summary>
/// <value>The default integer value.</value>
public string DefaultIntegerValue
{
get { return defaultIntegerValue; }
set { defaultIntegerValue = value; }
}
}
}