public override bool Equals(object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (!(o is BlockingState))
            {
                return(false);
            }

            BlockingState that = (BlockingState)o;

            if (BlockedId != null ? !BlockedId.Equals(that.BlockedId) : that.BlockedId != null)
            {
                return(false);
            }
            if (StateName != null ? !StateName.Equals(that.StateName) : that.StateName != null)
            {
                return(false);
            }
            if (Service != null ? !Service.Equals(that.Service) : that.Service != null)
            {
                return(false);
            }
            if (!BlockChange.Equals(that.BlockChange))
            {
                return(false);
            }
            if (!BlockEntitlement.Equals(that.BlockEntitlement))
            {
                return(false);
            }
            if (!BlockBilling.Equals(that.BlockBilling))
            {
                return(false);
            }
            if (EffectiveDate != null ? EffectiveDate.CompareTo(that.EffectiveDate) != 0 : that.EffectiveDate != null)
            {
                return(false);
            }
            return(Type == that.Type);
        }