public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (obj == this)
            {
                return(true);
            }

            return(obj is CustomAttributeFilter other &&
                   ((CustomAttributeDefinitionId == null && other.CustomAttributeDefinitionId == null) || (CustomAttributeDefinitionId?.Equals(other.CustomAttributeDefinitionId) == true)) &&
                   ((Key == null && other.Key == null) || (Key?.Equals(other.Key) == true)) &&
                   ((StringFilter == null && other.StringFilter == null) || (StringFilter?.Equals(other.StringFilter) == true)) &&
                   ((NumberFilter == null && other.NumberFilter == null) || (NumberFilter?.Equals(other.NumberFilter) == true)) &&
                   ((SelectionUidsFilter == null && other.SelectionUidsFilter == null) || (SelectionUidsFilter?.Equals(other.SelectionUidsFilter) == true)) &&
                   ((BoolFilter == null && other.BoolFilter == null) || (BoolFilter?.Equals(other.BoolFilter) == true)));
        }