in edge-hub/core/src/Microsoft.Azure.Devices.Routing.Core/Message.cs [98:118]
public bool Equals(Message other)
{
if (ReferenceEquals(null, other))
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
return this.MessageSource.Equals(other.MessageSource) &&
this.Offset == other.Offset &&
this.Body.SequenceEqual(other.Body) &&
this.Properties.Keys.Count() == other.Properties.Keys.Count() &&
this.Properties.Keys.All(
key => other.Properties.ContainsKey(key) && Equals(this.Properties[key], other.Properties[key]) &&
this.SystemProperties.Keys.Count() == other.SystemProperties.Keys.Count() &&
this.SystemProperties.Keys.All(skey => other.SystemProperties.ContainsKey(skey) && Equals(this.SystemProperties[skey], other.SystemProperties[skey])));
}