using System; using System.Runtime.Serialization; namespace Tanshu.Accounts.Contracts { public class BillItemKey { //Old = 0, New = 1, Modifiers = 2+ public BillItemKey(int ProductID, int KotID) { this.ProductID = ProductID; this.KotID = KotID; } public int ProductID { get; private set; } public int KotID { get; private set; } public override int GetHashCode() { return ProductID.GetHashCode() ^ KotID.GetHashCode(); } public override bool Equals(object obj) { if (obj is BillItemKey) return (this == (BillItemKey)obj); else return false; } public override string ToString() { return string.Format("{0} - {1}", ProductID, KotID); } public static bool operator ==(BillItemKey a, BillItemKey b) { if (object.ReferenceEquals(null, a)) return object.ReferenceEquals(null, b); if (!(a is BillItemKey)) return false; if (!(b is BillItemKey)) return false; return a.ProductID == b.ProductID && a.KotID == b.KotID; } public static bool operator !=(BillItemKey a, BillItemKey b) { return !(a == b); } } }