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;
}
}