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.

29 lines
1.1 KiB

using OpenDBDiff.Schema.Model;
using OpenDBDiff.Schema.SQLServer.Generates.Model;
namespace OpenDBDiff.Schema.SQLServer.Generates.Compare
{
internal class CompareTriggers : CompareBase<Trigger>
{
protected override void DoNew<Root>(SchemaList<Trigger, Root> originFields, Trigger node)
{
Trigger newNode = (Trigger)node.Clone(originFields.Parent);
newNode.Status = ObjectStatus.Create;
originFields.Add(newNode);
}
protected override void DoUpdate<Root>(SchemaList<Trigger, Root> originFields, Trigger node)
{
if (!node.Compare(originFields[node.FullName]))
{
Trigger newNode = (Trigger)node.Clone(originFields.Parent);
if (!newNode.Text.Equals(originFields[node.FullName].Text))
newNode.Status = ObjectStatus.Alter;
if (node.IsDisabled != originFields[node.FullName].IsDisabled)
newNode.Status = newNode.Status + (int)ObjectStatus.Disabled;
originFields[node.FullName] = newNode;
}
}
}
}