public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = _oldRule != null?_oldRule.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (_logicalConjunction != null ? _logicalConjunction.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^
                           (_currentArchRuleCreator != null ? _currentArchRuleCreator.GetHashCode() : 0);
                return(hashCode);
            }
        }
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = Description != null?Description.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (_firstRule != null ? _firstRule.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (_logicalConjunction != null ? _logicalConjunction.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^
                           (_secondRule != null ? _secondRule.GetHashCode() : 0);
                return(hashCode);
            }
        }