public void DeleteAccountMessagesByFolder(string ticket, int id) { using (SnCore.Data.Hibernate.Session.OpenConnection()) { ISession session = SnCore.Data.Hibernate.Session.Current; ManagedAccountMessageFolder f = new ManagedAccountMessageFolder(session, id); ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket); f.DeleteAccountMessages(sec); SnCore.Data.Hibernate.Session.Flush(); } }
public List<TransitAccountMessageFolder> GetAccountMessageFolders(string ticket, int id, ServiceQueryOptions options) { using (SnCore.Data.Hibernate.Session.OpenConnection()) { ISession session = SnCore.Data.Hibernate.Session.Current; ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket); // sort the tree IList folders = session.CreateCriteria(typeof(AccountMessageFolder)) .Add(Expression.Eq("Account.Id", id)) .AddOrder(Order.Desc("System")) .AddOrder(Order.Asc("Name")) .List(); AccountMessageFolderTree tree = new AccountMessageFolderTree(folders); IEnumerator<AccountMessageFolder> enumerator = tree.GetDepthFirstEnumerator(); List<TransitAccountMessageFolder> result = new List<TransitAccountMessageFolder>(); while (enumerator.MoveNext()) { ManagedAccountMessageFolder m_folder = new ManagedAccountMessageFolder(session, enumerator.Current); result.Add(m_folder.GetTransitInstance(sec)); } return WebServiceQueryOptions<TransitAccountMessageFolder>.Apply(options, result); } }