public static void Main()
Console.WriteLine("Hello World");
Error a = new Error(404, "Not Found");
Error b = new Error(404, "Not Found");
Error c = new Error(404, "Nothing Here");
Console.WriteLine(a.IsEqual(c));
public int? Status { get; set; } = null;
public string Message { get; set; } = "";
public bool Published { get; set; } = false;
public bool Resolved { get; set; } = false;
public Error(int status, string message, bool published=false, bool resolved=false)
public bool IsEqual(Error e, bool caseSensitive=true)
if(caseSensitive == true)
return (Status == e.Status && Message == e.Message && Published == e.Published && Resolved == e.Resolved);
return (Status == e.Status && Message.ToLower() == e.Message.ToLower() && Published == e.Published && Resolved == e.Resolved);
public static bool operator ==(Error x, Error y){
public static bool operator !=(Error x, Error y){
public override int GetHashCode(){
Console.WriteLine("doba");
PropertyInfo[] properties = this.GetType().GetProperties();
foreach (PropertyInfo pi in properties)
Console.WriteLine(pi.Name);
hash = (hash * 7) + (pi.GetValue(this, null) == null ? 0 : pi.GetHashCode());