public override int GetHashCode()
{
var hash = 27;
foreach (var property in GetType().GetProperties())
{
hash = (hash * 7) + property.GetValue(this, null).GetHashCode();
}
return hash;
}