private static void CloseOpenConnection(IHasConnection hasConnection)
 {
     if (hasConnection.IsConnectionOpen)
     {
         hasConnection.Connection.Dispose();
         hasConnection.Connection = null;
     }
 }
 public static IEnumerable <T> HandleIteratorInvocation <T>(
     IHasConnection hasConnection, IEnumerable enumerable)
 {
     try
     {
         foreach (var element in enumerable)
         {
             yield return((T)element);
         }
     }
     finally
     {
         CloseOpenConnection(hasConnection);
     }
 }