public override bool Equals()

in src/Proton/Types/Transport/ErrorCondition.cs [76:122]


      public override bool Equals(object obj)
      {
         if (obj is ErrorCondition condition)
         {
            bool equal = true;

            if (!EqualityComparer<Symbol>.Default.Equals(Condition, condition.Condition))
            {
               equal = false;
            }

            if (equal && Description != condition.Description)
            {
               equal = false;
            }

            if (equal && Info != null && condition.Info != null && Info.Count == condition.Info.Count)
            {
               foreach (KeyValuePair<Symbol, object> pair in Info)
               {
                  if (condition.Info.TryGetValue(pair.Key, out object value))
                  {
                     if (!EqualityComparer<object>.Default.Equals(value, pair.Value))
                     {
                        equal = false;
                        break;
                     }
                  }
                  else
                  {
                     equal = false;
                     break;
                  }
               }
            }
            else
            {
               equal = equal && (Info == null && condition.Info == null);
            }

            return equal;
         }
         else
         {
            return false;
         }
      }