/// <summary>
 /// Filters referencing structures
 /// </summary>
 /// <param name="refereningStructures">
 /// The collection of referencing structures.
 /// </param>
 /// <param name="alreadyReversionedMaintainables">
 /// The set of already reversioned maintainables.
 /// </param>
 private void FilterReferencingStructures(
     ICollection<IMaintainableObject> refereningStructures,
     ISet<IMaintainableObject> alreadyReversionedMaintainables)
 {
     ISet<IMaintainableObject> removeSet = new HashSet<IMaintainableObject>();
     foreach (IMaintainableObject currentReference in refereningStructures)
     {
         foreach (IMaintainableObject alreadyReversionedReference in alreadyReversionedMaintainables)
         {
             if (currentReference.StructureType == alreadyReversionedReference.StructureType)
             {
                 if (currentReference.AgencyId.Equals(alreadyReversionedReference.AgencyId))
                 {
                     if (currentReference.Id.Equals(alreadyReversionedReference.Id))
                     {
                         removeSet.Add(currentReference);
                     }
                 }
             }
         }
     }
     refereningStructures.RemoveItemList(removeSet);
 }