示例#1
0
        public List <AccountInfo> GetAccountInfoList()
        {
            var accountInfoList = CacheEngine.Get(User);

            if (accountInfoList != null)
            {
                return(accountInfoList);
            }

            List <Account>           accounts;
            List <MailSignatureData> signatures;
            List <MailAutoreplyData> autoreplies;

            using (var daoFactory = new DaoFactory())
            {
                accounts = daoFactory.CreateAccountDao(Tenant, User)
                           .GetAccounts();

                var mailboxIds = accounts.Select(a => a.MailboxId).ToList();

                signatures = daoFactory.CreateMailboxSignatureDao(Tenant, User)
                             .GetSignatures(mailboxIds)
                             .ConvertAll(s => new MailSignatureData(s.MailboxId, s.Tenant, s.Html, s.IsActive))
                             .ToList();

                autoreplies = daoFactory.CreateMailboxAutoreplyDao(Tenant, User)
                              .GetAutoreplies(mailboxIds)
                              .ConvertAll(
                    r =>
                    new MailAutoreplyData(r.MailboxId, r.Tenant, r.TurnOn, r.OnlyContacts, r.TurnOnToDate,
                                          r.FromDate, r.ToDate, r.Subject, r.Html))
                              .ToList();
            }

            accountInfoList = ToAccountInfoList(accounts, signatures, autoreplies);

            CacheEngine.Set(User, accountInfoList);

            return(accountInfoList);
        }