From 31174187850d75a5df5254432d00cf36f769c298 Mon Sep 17 00:00:00 2001
From: Patrick Simpson
Date: Wed, 8 Feb 2017 16:54:47 +0100
Subject: [PATCH] More debug options
---
.../Features/GAB/FeatureGAB.cs | 9 ++++++++
.../Features/GAB/GABHandler.cs | 21 +++++++++++--------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/FeatureGAB.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/FeatureGAB.cs
index e0eb9db..53b1922 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/FeatureGAB.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/FeatureGAB.cs
@@ -118,6 +118,15 @@ namespace Acacia.Features.GAB
}
private static readonly BoolOption OPTION_PROCESS_MESSAGE = new BoolOption("ProcessMessage", true);
+ [AcaciaOption("If disabled, existing contacts are not deleted when a chunk is processed. " +
+ "This should only be disabled for debug purposes.")]
+ public bool ProcessMessageDeleteExisting
+ {
+ get { return GetOption(OPTION_PROCESS_MESSAGE_DELETE_EXISTING); }
+ set { SetOption(OPTION_PROCESS_MESSAGE_DELETE_EXISTING, value); }
+ }
+ private static readonly BoolOption OPTION_PROCESS_MESSAGE_DELETE_EXISTING = new BoolOption("ProcessMessageDeleteExisting", true);
+
[AcaciaOption("If disabled, contacts are not created from incoming GAB messages. " +
"This should only be disabled for debug purposes.")]
public bool CreateContacts
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/GABHandler.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/GABHandler.cs
index f4af236..e2c67d6 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/GABHandler.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/GAB/GABHandler.cs
@@ -268,18 +268,21 @@ namespace Acacia.Features.GAB
_feature?.BeginProcessing();
try
{
- // Delete the old contacts from this chunk
- using (ISearch search = Contacts.Search())
+ if (_feature.ProcessMessageDeleteExisting)
{
- search.AddField(PROP_SEQUENCE, true).SetOperation(SearchOperation.Equal, index.numberOfChunks);
- search.AddField(PROP_CHUNK, true).SetOperation(SearchOperation.Equal, index.chunk);
- foreach (IItem oldItem in search.Search())
+ // Delete the old contacts from this chunk
+ using (ISearch search = Contacts.Search())
{
- // TODO: Search should handle this, like folder enumeration
- using (oldItem)
+ search.AddField(PROP_SEQUENCE, true).SetOperation(SearchOperation.Equal, index.numberOfChunks);
+ search.AddField(PROP_CHUNK, true).SetOperation(SearchOperation.Equal, index.chunk);
+ foreach (IItem oldItem in search.Search())
{
- Logger.Instance.Trace(this, "Deleting GAB entry: {0}", oldItem.Subject);
- oldItem.Delete();
+ // TODO: Search should handle this, like folder enumeration
+ using (oldItem)
+ {
+ Logger.Instance.Trace(this, "Deleting GAB entry: {0}", oldItem.Subject);
+ oldItem.Delete();
+ }
}
}
}