/// <summary> /// Update the list of buddies /// </summary> public void UpdateBuddyList() { buddyList.Items.Clear(); // TODO: Wrap in a DAO using (ISession session = new SessionFactory().OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { var subscriptions = session.CreateCriteria <BuddySubscription>().List <BuddySubscription>(); foreach (BuddySubscription subscription in subscriptions) { string label = subscription.Id.ToString(); BuddyStash stash = session.CreateCriteria <BuddyStash>() .Add(Restrictions.Eq("UserId", subscription.Id)) .SetMaxResults(1) .UniqueResult <BuddyStash>(); if (stash != null) { label = string.Format("[{0}] {1}", label, stash.Description); } var numItems = session .CreateSQLQuery( $"SELECT COUNT(*) FROM {BuddyItemsTable.Table} WHERE {BuddyItemsTable.BuddyId} = :id") .SetParameter("id", subscription.Id) .UniqueResult(); ListViewItem lvi = new ListViewItem(label); lvi.SubItems.Add(numItems.ToString()); lvi.Tag = subscription.Id; buddyList.Items.Add(lvi); } } } }