protected override void InternalEndRecovery()
 {
     foreach (KeyValuePair <StoreObjectId, ItemCountPair> keyValuePair in this.itemCounts)
     {
         ItemCountAdvisor.UpdateItemCounts(this.recoveryItemCounts, keyValuePair.Key, keyValuePair.Value.ItemCount, keyValuePair.Value.UnreadItemCount);
     }
     this.itemCounts         = this.recoveryItemCounts;
     this.recoveryItemCounts = null;
 }
        protected override void InternalRecoveryConsumeRelevantEvent(MapiEvent mapiEvent)
        {
            string        text          = null;
            StoreObjectId storeObjectId = Event.GetStoreObjectId(mapiEvent, out text);

            if (this.recoveryItemCounts.Count == 0)
            {
                this.firstWatermarkInRecoveryDictionary = mapiEvent.Watermark.EventCounter;
            }
            ItemCountAdvisor.UpdateItemCounts(this.recoveryItemCounts, storeObjectId, mapiEvent.ItemCount, mapiEvent.UnreadItemCount);
        }