diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IAddIn.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IAddIn.cs index 7cb8cbc..4cb0b03 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IAddIn.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IAddIn.cs @@ -90,5 +90,7 @@ namespace Acacia.Stubs ISignatures GetSignatures(); void InUI(Action action); + + bool IsOffline { get; } } } diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/AddInWrapper.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/AddInWrapper.cs index 7b4174f..d5f4c5b 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/AddInWrapper.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/AddInWrapper.cs @@ -68,6 +68,22 @@ namespace Acacia.Stubs.OutlookWrappers return new SignaturesWrapper(); } + public bool IsOffline + { + get + { + NSOutlook.NameSpace session = _app.Session; + try + { + return session.Offline; + } + finally + { + ComRelease.Release(session); + } + } + } + public void InUI(Action action) { Exception x = null; diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushSync.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushSync.cs index e05b37b..abed17b 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushSync.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushSync.cs @@ -178,6 +178,9 @@ namespace Acacia.ZPush /// private void ExecuteTasks() { + if (ThisAddIn.Instance.IsOffline) + return; + foreach (ZPushAccount account in _watcher.Accounts.GetAccounts()) ExecuteTasks(account); }