An alternative to UBB.threads
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.
 
 
 
 
FLocal/Patcher/Data/Command/RemoveColumnCommand.cs

66 lines
1.8 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Patcher.DB;
namespace Patcher.Data.Command
{
class RemoveColumnCommand : AbstractColumnCommand
{
private RemoveColumnCommand(int num, XElement inner) : base(num, inner)
{
}
public static RemoveColumnCommand CreateSpecific(int num, XElement inner)
{
return new RemoveColumnCommand(num, inner);
}
public override IEnumerable<XElement> Apply(Transaction transaction, bool forceIntegrity)
{
if(!forceIntegrity)
{
throw new NotImplementedException("Safe stored procedure creation is not implemented yet");
}
var options = transaction.GetColumnOptions(column);
/*Console.WriteLine();
Console.Write(options.type);
if(options.defaultValue != null)
{
Console.Write(" DEFAULT " + options.defaultValue);
}
if(options.isNotNull)
{
Console.Write(" NOT NULL");
}
Console.WriteLine();
Console.WriteLine("'" + options.defaultValue + "'");*/
transaction.RemoveColumn(column);
return new[]
{
new XElement("type", options.type),
options.defaultValue != null ? new XElement("defaultValue", options.defaultValue) : null,
options.isNotNull ? new XElement("isNotNull") : null
};
}
public override void Rollback(Transaction transaction, XElement commandRollbackInfo)
{
transaction.CreateColumn(
new ColumnDescription(
this.column,
new ColumnOptions(
commandRollbackInfo.Element("type").Value,
commandRollbackInfo.Element("defaultValue") != null ? commandRollbackInfo.Element("defaultValue").Value : null,
commandRollbackInfo.Element("isNotNull") != null
)
)
);
}
}
}