protected void OnQueueStarted(QueueStartedEventArgs e) { if (QueueStarted != null) { QueueStarted(this, e); } }
/// <summary> /// Copies file system items overwriting if necessary. /// </summary> /// <param name="items">List of <code>CopyPair</code> to copy.</param> public void Copy(IList <CopyPair> items) { try { if (items == null) { throw new ArgumentNullException("items", "List of items to copy is null."); } else if (items.Count == 0) { return; } InitializeQueue(items); if (QueueStarted != null) { var args = new QueueStartedEventArgs(_queueInfo); OnQueueStarted(args); if (args.Cancel) { return; } } foreach (var copyPair in items) { CheckStopped(); try { CopyHelper(copyPair); _queueInfo.ItemsCompleteCount += 1; OnQueueProgressChanged(_queueInfo); } catch (Exception ex) { ReportError(copyPair, ex); _log.ErrorFormat("Error copying {0} to {1}.", copyPair.SourceInfo.FullName, copyPair.TargetInfo.FullName); _log.ErrorFormat(ex.Message, ex); } CheckStopped(); } OnQueueComplete(_queueInfo); } catch (StoppedException) { _log.Debug("FileSystemCopier execution stopped."); StopInternal(); } }