Example #1
0
 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();
     }
 }
Example #2
0
        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);
            }
        }