Пример #1
0
        public Dictionary <string, Dictionary <string, MailBoxData.MailboxInfo> > GetSpecialDomainFolders()
        {
            var specialDomainFolders = new Dictionary <string, Dictionary <string, MailBoxData.MailboxInfo> >();

            try
            {
                using (var daoFactory = new DaoFactory())
                {
                    var imapSpecialMailboxes = daoFactory
                                               .CreateImapSpecialMailboxDao()
                                               .GetImapSpecialMailboxes();

                    imapSpecialMailboxes.ForEach(r =>
                    {
                        var mb = new MailBoxData.MailboxInfo
                        {
                            folder_id = r.FolderId,
                            skip      = r.Skip
                        };
                        if (specialDomainFolders.Keys.Contains(r.Server))
                        {
                            specialDomainFolders[r.Server][r.MailboxName] = mb;
                        }
                        else
                        {
                            specialDomainFolders[r.Server] = new Dictionary <string, MailBoxData.MailboxInfo>
                            {
                                { r.MailboxName, mb }
                            }
                        };
                    });
                }
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("GetSpecialDomainFolders() Exception: {0}", ex.ToString());
            }

            return(specialDomainFolders);
        }
        public MailQueueItemSettings()
        {
            using (var daoFactory = new DaoFactory())
            {
                var imapFlags = daoFactory.CreateImapFlagsDao().GetImapFlags();

                SkipImapFlags = imapFlags.FindAll(i => i.Skip).ConvertAll(i => i.Name).ToArray();

                ImapFlags = new Dictionary <string, int>();
                imapFlags.FindAll(i => !i.Skip).ForEach(i => { ImapFlags[i.Name] = i.FolderId; });

                var imapSpecialMailboxes = daoFactory.CreateImapSpecialMailboxDao().GetImapSpecialMailboxes();

                SpecialDomainFolders = new Dictionary <string, Dictionary <string, MailBoxData.MailboxInfo> >();
                imapSpecialMailboxes.ForEach(r =>
                {
                    var mb = new MailBoxData.MailboxInfo
                    {
                        folder_id = r.FolderId,
                        skip      = r.Skip
                    };
                    if (SpecialDomainFolders.Keys.Contains(r.Server))
                    {
                        SpecialDomainFolders[r.Server][r.MailboxName] = mb;
                    }
                    else
                    {
                        SpecialDomainFolders[r.Server] = new Dictionary <string, MailBoxData.MailboxInfo>
                        {
                            { r.MailboxName, mb }
                        }
                    };
                });
            }

            DefaultFolders = GetDefaultFolders();
        }