protected abstract void MapiImportDeletes(ImportDeletionFlags importDeletionFlags, PropValue[] sourceKeys);
protected override void MapiImportDeletes(ImportDeletionFlags importDeletionFlags, PropValue[] sourceKeys) { base.MapiCollector.ImportMessageDeletion(importDeletionFlags, sourceKeys); }
internal void ImportDeletes(DeleteItemFlags deleteItemFlags, byte[][] sourceKeys) { this.CheckDisposed(null); Util.ThrowOnNullArgument(sourceKeys, "sourceKeys"); ImportDeletionFlags importDeletionFlags = ((deleteItemFlags & DeleteItemFlags.HardDelete) == DeleteItemFlags.HardDelete) ? ImportDeletionFlags.HardDelete : ImportDeletionFlags.None; PropValue[] array = new PropValue[sourceKeys.Length]; for (int i = 0; i < sourceKeys.Length; i++) { array[i] = new PropValue(PropTag.SourceKey, sourceKeys[i]); } StoreSession session = this.Session; bool flag = false; try { if (session != null) { session.BeginMapiCall(); session.BeginServerHealthCall(); flag = true; } if (StorageGlobals.MapiTestHookBeforeCall != null) { StorageGlobals.MapiTestHookBeforeCall(MethodBase.GetCurrentMethod()); } this.MapiImportDeletes(importDeletionFlags, array); } catch (MapiPermanentException ex) { throw StorageGlobals.TranslateMapiException(ServerStrings.CannotImportDeletion, ex, session, this, "{0}. MapiException = {1}.", new object[] { string.Format("Import of object deletions failed", new object[0]), ex }); } catch (MapiRetryableException ex2) { throw StorageGlobals.TranslateMapiException(ServerStrings.CannotImportDeletion, ex2, session, this, "{0}. MapiException = {1}.", new object[] { string.Format("Import of object deletions failed", new object[0]), ex2 }); } finally { try { if (session != null) { session.EndMapiCall(); if (flag) { session.EndServerHealthCall(); } } } finally { if (StorageGlobals.MapiTestHookAfterCall != null) { StorageGlobals.MapiTestHookAfterCall(MethodBase.GetCurrentMethod()); } } } }