private void GetMailFolders(EmailAccountsArchiveSettings settings, Outlook.Folders folders)
 {
     this.tsResults.Nodes.Clear();
     this.tsResults.CheckBoxes = true;
     GetMailFolders(folders, tsResults.Nodes, settings.SelectedFolderEntryIds);
     this.tsResults.ExpandAll();
 }
예제 #2
0
        private void SaveAccountAutoArchivingSettings()
        {
            var allSettings = EmailArchiveAccountTabs.TabPages.Cast <TabPage>()
                              .SelectMany(tabPage => tabPage.Controls.OfType <EmailAccountArchiveSettingsControl>())
                              .Select(accountSettingsControl => accountSettingsControl.SaveSettings())
                              .ToList();

            var conbinedSettings = EmailAccountsArchiveSettings.Combine(allSettings);

            conbinedSettings.Save();
            Properties.Settings.Default.AutoArchive = conbinedSettings.HasAny;
        }
        public void LoadSettings(Outlook.Account outlookAccount, EmailAccountsArchiveSettings settings)
        {
            var store = outlookAccount.DeliveryStore;

            _outlookStoreId = store.StoreID;
            var rootFolder  = store.GetRootFolder();
            var smtpAddress = outlookAccount.SmtpAddress;

            ArchiveInboundCheckbox.Text  = $"Archive Mail Received by {smtpAddress}";
            ArchiveOutboundCheckbox.Text = $"Archive Mail Sent by {smtpAddress}";

            GetMailFolders(settings, rootFolder.Folders);
            ArchiveInboundCheckbox.Checked  = settings.AccountsToArchiveInbound.Contains(_outlookStoreId);
            ArchiveOutboundCheckbox.Checked = settings.AccountsToArchiveOutbound.Contains(_outlookStoreId);
        }
        public EmailAccountsArchiveSettings SaveSettings()
        {
            var result = new EmailAccountsArchiveSettings();

            if (_outlookStoreId != null)
            {
                GetCheckedFoldersHelper(tsResults.Nodes, result.SelectedFolderEntryIds);
                if (ArchiveInboundCheckbox.Checked)
                {
                    result.AccountsToArchiveInbound.Add(_outlookStoreId);
                }
                if (ArchiveOutboundCheckbox.Checked)
                {
                    result.AccountsToArchiveOutbound.Add(_outlookStoreId);
                }
            }

            return(result);
        }
예제 #5
0
        private void GetAccountAutoArchivingSettings()
        {
            var settings = new EmailAccountsArchiveSettings();

            settings.Load();
            EmailArchiveAccountTabs.TabPages.Clear();
            var outlookSession = Application.Session;

            this.Log.Debug($"SettingsDialog: Setting up account archiving widget. Outlook version is {Globals.ThisAddIn.OutlookVersion}; there are {outlookSession.Accounts.Count} accounts");

            if (Globals.ThisAddIn.OutlookVersion >= OutlookMajorVersion.Outlook2010)
            {
                // Uses a Outlook 2013 APIs on Account object: DeliveryStore and GetRootFolder()
                // Needs work to make it work on Outlook 2010 and below.
                foreach (Account account in outlookSession.Accounts)
                {
                    this.Log.Debug($"SettingsDialog: Added email archiving tab for account {account.DisplayName}");
                    AddTabPage(account).LoadSettings(account, settings);
                }
            }
        }
예제 #6
0
        private void GetAccountAutoArchivingSettings()
        {
            var settings = new EmailAccountsArchiveSettings();

            settings.Load(Globals.ThisAddIn.Settings);
            EmailArchiveAccountTabs.TabPages.Clear();
            var outlookSession = Application.Session;

            if (Globals.ThisAddIn.OutlookVersion >= OutlookMajorVersion.Outlook2013)
            {
                // Uses a Outlook 2013 APIs on Account object: DeliveryStore and GetRootFolder()
                // Needs work to make it work on Outlook 2010 and below.
                foreach (Account account in outlookSession.Accounts)
                {
                    var name       = account.DisplayName;
                    var store      = account.DeliveryStore;
                    var rootFolder = store.GetRootFolder();

                    var pageControl = AddTabPage(account);
                    pageControl.LoadSettings(account, settings);
                }
            }
        }