public static IEnumerable <IncomingFileTransfer> GetAll(Connection conn)
 {
     foreach (Contact contact in conn.Roster.GetAllContacts())
     {
         DispatchManager dm = contact.DispatchManager;
         foreach (IncomingFileTransfer ft in dm.GetAll <IncomingFileTransfer> (contact))
         {
             yield return(ft);
         }
     }
 }
        public static int Count <T> (Connection conn) where T : Dispatchable
        {
            if (conn == null)
            {
                throw new ArgumentNullException("conn");
            }

            int count = 0;

            foreach (Contact contact in conn.Roster.GetAllContacts())
            {
                DispatchManager dm = contact.DispatchManager;
                foreach (T obj in dm.GetAll <T> (contact))
                {
                    if (obj != null)
                    {
                        count++;
                    }
                }
            }

            return(count);
        }