public IOrmAttribute MergeChanges(IOrmAttribute otherAttribute, MergeConflictAction mergeConflictAction) { OrmKeyGeneratorAttribute other = (OrmKeyGeneratorAttribute)otherAttribute; OrmKeyGeneratorAttribute mergedResult = new OrmKeyGeneratorAttribute(); bool enabled = this.Enabled; //if (!other.Enabled && mergeConflictAction == MergeConflictAction.TakeOther) if (other.Enabled && !enabled && mergeConflictAction == MergeConflictAction.TakeOther) { enabled = other.Enabled; } mergedResult.Enabled = enabled; var defaultableItems = GetDefaultableItems(); var otherDefaultableItems = other.GetDefaultableItems(); var mergedKind = defaultableItems.Item1.Merge(otherDefaultableItems.Item1, mergeConflictAction); mergedResult.Kind = mergedKind.IsDefault() ? KeyGeneratorKind.Default : mergedKind.Value; var mergedName = defaultableItems.Item2.Merge(otherDefaultableItems.Item2, mergeConflictAction); mergedResult.Name = mergedName.Value; var mergedType = defaultableItems.Item3.Merge(otherDefaultableItems.Item3, mergeConflictAction); mergedResult.Type = mergedType.Value; return(mergedResult); }
protected override bool InternalEqualsTo(DefaultableMulti other) { OrmKeyGeneratorAttribute otherAttr = (OrmKeyGeneratorAttribute)other; return(this.Kind == otherAttr.Kind && Util.StringEqual(this.Name, otherAttr.Name, false) && Util.StringEqual(this.Type, otherAttr.Type, false)); }
protected override void InternalAssignFrom(DefaultableMulti other) { if (other is OrmKeyGeneratorAttribute) { OrmKeyGeneratorAttribute attr = (OrmKeyGeneratorAttribute)other; this.Enabled = attr.Enabled; this.Kind = attr.Kind; this.Name = attr.Name; this.Type = attr.Type; } }