/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (AccountId != null)
         {
             hashCode = hashCode * 59 + AccountId.GetHashCode();
         }
         if (TransactionId != null)
         {
             hashCode = hashCode * 59 + TransactionId.GetHashCode();
         }
         if (IsDetailAvailable != null)
         {
             hashCode = hashCode * 59 + IsDetailAvailable.GetHashCode();
         }
         if (Type != null)
         {
             hashCode = hashCode * 59 + Type.GetHashCode();
         }
         if (Status != null)
         {
             hashCode = hashCode * 59 + Status.GetHashCode();
         }
         if (Description != null)
         {
             hashCode = hashCode * 59 + Description.GetHashCode();
         }
         if (PostingDateTime != null)
         {
             hashCode = hashCode * 59 + PostingDateTime.GetHashCode();
         }
         if (ValueDateTime != null)
         {
             hashCode = hashCode * 59 + ValueDateTime.GetHashCode();
         }
         if (ExecutionDateTime != null)
         {
             hashCode = hashCode * 59 + ExecutionDateTime.GetHashCode();
         }
         if (Amount != null)
         {
             hashCode = hashCode * 59 + Amount.GetHashCode();
         }
         if (Currency != null)
         {
             hashCode = hashCode * 59 + Currency.GetHashCode();
         }
         if (Reference != null)
         {
             hashCode = hashCode * 59 + Reference.GetHashCode();
         }
         if (MerchantName != null)
         {
             hashCode = hashCode * 59 + MerchantName.GetHashCode();
         }
         if (MerchantCategoryCode != null)
         {
             hashCode = hashCode * 59 + MerchantCategoryCode.GetHashCode();
         }
         if (BillerCode != null)
         {
             hashCode = hashCode * 59 + BillerCode.GetHashCode();
         }
         if (BillerName != null)
         {
             hashCode = hashCode * 59 + BillerName.GetHashCode();
         }
         if (Crn != null)
         {
             hashCode = hashCode * 59 + Crn.GetHashCode();
         }
         if (ApcaNumber != null)
         {
             hashCode = hashCode * 59 + ApcaNumber.GetHashCode();
         }
         return(hashCode);
     }
 }