public IOfficeConnectAddin(ThisAddIn addin)
        {
            try
            {
                _addin = addin;

                IOfficeConnectGlobals.ErEnUkendtBrugerAktiv = true;

                var outlookInboxFolder = _addin.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);

                // Get outlook inbox store ID
                IOfficeConnectGlobals.InboxFolderEntryID = outlookInboxFolder.EntryID;
                IOfficeConnectGlobals.UserStoreID = outlookInboxFolder.StoreID;

                Task.Run(() =>
                {
                    IOfficeConnectGlobals.EnsureCache();

                    log.Info("Cache was built");
                });

                var brugerKendt = IOfficeConnectGlobals.GetCurrentBruger();

                if (brugerKendt == null)
                {
                    var m = string.Format("Brugeren du er logget på windows med ({0}) er ukendt i IOffice", Environment.UserName);

                    log.Warn(m);

                    MessageBox.Show(m, "Ukendt bruger", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    log.InfoFormat("Bruger med ID {0} og navn {1} logget ind", brugerKendt.ID, brugerKendt.Navn);

                    IOfficeConnectGlobals.ErEnUkendtBrugerAktiv = false;

                    // Hookup on mail received
                    _addin.Application.NewMailEx += Application_NewMailEx;

                    // Hookup item sent
                    // http://stackoverflow.com/questions/23803960/outlook-itemadd-event-not-triggered
                    _sentItemsFolder = _addin.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail);
                    _sentItems = _sentItemsFolder.Items;
                    _sentItems.ItemAdd -= sentItems_ItemAdd;
                    _sentItems.ItemAdd += sentItems_ItemAdd;

                    log.Info("Events new mail og itemsend hooked up");
                }
            }
            catch (Exception e)
            {
                var m = string.Format("Generel fejl under opstart: {0}", e.Message);

                log.Error(m, e);

                MessageBox.Show(m, "Ukendt fejl under opstart", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                throw;
            }
        }
コード例 #2
0
        public IOfficeConnectAddin(ThisAddIn addin)
        {
            try
            {
                _addin = addin;

                IOfficeConnectGlobals.ErEnUkendtBrugerAktiv = true;

                var outlookInboxFolder = _addin.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);

                // Get outlook inbox store ID
                IOfficeConnectGlobals.InboxFolderEntryID = outlookInboxFolder.EntryID;
                IOfficeConnectGlobals.UserStoreID = outlookInboxFolder.StoreID;

                Task.Run(() =>
                {
                    IOfficeConnectGlobals.EnsureCache();

                    log.Info("Cache was built");
                });

                var brugerKendt = IOfficeConnectGlobals.GetCurrentBruger();

                if (brugerKendt == null)
                {
                    var m = string.Format("Brugeren du er logget på windows med ({0}) er ukendt i IOffice", Environment.UserName);

                    log.Warn(m);

                    MessageBox.Show(m, "Ukendt bruger", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    log.InfoFormat("Bruger med ID {0} og navn {1} logget ind", brugerKendt.ID, brugerKendt.Navn);

                    IOfficeConnectGlobals.ErEnUkendtBrugerAktiv = false;

                    if (IOfficeConnectGlobals.ArchiveRootFolderExists(_addin.Application.Session, brugerKendt) == true)
                    {
                        // Hookup on mail received
                        _addin.Application.NewMailEx += Application_NewMailEx;

                        // Hookup item sent
                        // http://stackoverflow.com/questions/23803960/outlook-itemadd-event-not-triggered
                        _sentItemsFolder = _addin.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail);
                        _sentItems = _sentItemsFolder.Items;
                        _sentItems.ItemAdd -= sentItems_ItemAdd;
                        _sentItems.ItemAdd += sentItems_ItemAdd;

                        log.Info("Events new mail og itemsend hooked up");

                        IOfficeConnectGlobals.ErFuldtInitialiseret = true;
                    }
                    else
                    {
                        var m = string.Format("Mappen til arkivering kunne ikke findes\r\nGå venligst ind i IOffice og vælg Settings\r\nUnder settings vælg fanebladet References\r\nTryk på luppen og vælg mappen \"Kunder\" under offentlige mapper\r\n\r\nGenstart Outlook når mappen er valgt så IOffice connect kan anvende indstillingen");

                        MessageBox.Show(m, "Mappen ikke fundet", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            catch (Exception e)
            {
                var m = string.Format("Generel fejl under opstart: {0}", e.Message);

                log.Error(m, e);

                MessageBox.Show(m, "Ukendt fejl under opstart", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                throw;
            }
        }