public override bool Equals(object obj)
        {
            if (object.ReferenceEquals(this, obj))
            {
                return(true);
            }
            else if (obj == null)
            {
                return(false);
            }
            else if (this.GetType() != obj.GetType())
            {
                return(false);
            }
            TransactionXid other = (TransactionXid)obj;

            if (this.FormatId != other.FormatId)
            {
                return(false);
            }
            else if (!this.BranchQualifier.SequenceEqual(other.BranchQualifier))
            {
                return(false);
            }
            else if (!this.GlobalTransactionId.SequenceEqual(other.GlobalTransactionId))
            {
                return(false);
            }
            return(true);
        }
 public TransactionContext(TransactionXid xid, TransactionStatus status)
 {
     Xid    = xid ?? throw new ArgumentNullException(nameof(xid));
     Status = status;
 }