/// <summary>
        /// Takes rename file system events and transforms them to rename events on queue.
        /// </summary>
        /// <param name="source">source object</param>
        /// <param name="e">Rename event from file system watcher</param>
        public virtual void Handle(object source, RenamedEventArgs e) {
            try {
                bool? isDirectory = this.fsFactory.IsDirectory(e.FullPath);

                if (isDirectory == null) {
                    this.queue.AddEvent(new StartNextSyncEvent(true));
                    return;
                }

                this.queue.AddEvent(new FSMovedEvent(e.OldFullPath, e.FullPath, (bool)isDirectory));
            } catch (Exception ex) {
                Logger.Warn(string.Format("Processing RenamedEventArgs {0} produces Exception => force crawl sync", e.ToString()), ex);
                this.queue.AddEvent(new StartNextSyncEvent(true));
            }
        }
 private static void OnRenamed(object source, RenamedEventArgs e)
 {
     Trace.WriteLine("{0} - {1} : {2} [{3}]", e.FullPath, e.Name, e.ChangeType.ToString(), e.ToString());
 }