private void SkyWatchEventHandler(ISkyWatchEventTypes skyWatchEventType, string eventKey)
 {
     lock (_thisLock)
     {
         try
         {
             if (skyWatchEventType == ISkyWatchEventTypes.WriteOccured)
             {
                 Type envelopeType = Tack.GetIEnvelopeType(eventKey);
                 long ID           = Tack.GetStorageID(eventKey);
                 IChatMessageEnvelope eventSubject_ChatMessageEnvelope = _chatMessageEnvelopeFactory.InstantiateIEnvelope();
                 eventSubject_ChatMessageEnvelope.ChatMessageID = ID;
                 IChatMessageEnvelope chatMessageEnvelopeFromSkyWatch = GetByID(eventSubject_ChatMessageEnvelope);
                 _skyWatchQueue.Enqueue(chatMessageEnvelopeFromSkyWatch);
             }
         }
         catch (Exception ex)
         {
             throw new ApplicationException(ex.Message, ex);
         }
     }
 }