public void MarkAsProcessed(ChangeRecordVector changeID)
        {
            foreach (ChangeRecordVector vector in this)
            {
                if (0 == String.Compare(changeID.NodeID, vector.NodeID, true))
                {
                    vector.OriginatingUSN = changeID.OriginatingUSN;
                    return;
                }
            }

            this.Add(changeID);
        }
        public bool IsProcessed(ChangeRecordVector changeID)
        {
            //
            // TODO: Consider. If you find Node id and OriginatingUSNs are not equal return false
            // avoiding checking the rest of the list
            //
            foreach (ChangeRecordVector vector in this)
            {
                if (0 == String.Compare(changeID.NodeID, vector.NodeID, true) &&
                    changeID.OriginatingUSN <= vector.OriginatingUSN)
                {
                    return(true);
                }
            }

            return(false);
        }
 public bool Contains(ChangeRecordVector vector)
 {
     return(List.Contains(vector));
 }
 public void Remove(ChangeRecordVector vector)
 {
     List.Remove(vector);
 }
 public int IndexOf(ChangeRecordVector vector)
 {
     return(List.IndexOf(vector));
 }
 public void Insert(int index, ChangeRecordVector vector)
 {
     List.Insert(index, vector);
 }
 public int Add(ChangeRecordVector vector)
 {
     return(List.Add(vector));
 }
 public ChangeRecordAcknowledgement(ChangeRecordVector acknowledgedChange)
 {
     this.AcknowledgedChange = acknowledgedChange;
 }
 public ChangeRecord(ChangeRecordVector changeID, ChangeRecordBase payload)
 {
     ChangeID = changeID;
     Payload  = payload;
 }