/// <summary>
 /// Raises ItemFailed event.
 /// </summary>
 /// <param name="eventArgs">event arguments</param>
 protected void onItemFailed(ItemDownloadEventArgs eventArgs)
 {
     if (this.ItemFailed != null)
     {
         this.ItemFailed(this, eventArgs);
     }
 }
 /// <summary>
 /// called when the download fails
 /// </summary>
 /// <param name="sender">sender of the event</param>
 /// <param name="e">event arguments</param>
 void action_DownloadFailed(object sender, ItemDownloadEventArgs e)
 {
     _itemsFailed++;
     onItemFailed(e);
 }
 /// <summary>
 /// called when the download completes
 /// </summary>
 /// <param name="sender">sender of the event</param>
 /// <param name="e">event arguments</param>
 void action_DownloadCompleted(object sender, ItemDownloadEventArgs e)
 {
     _itemsCompleted++;
     onItemDownloaded(e);
 }
 /// <summary>
 /// called when the download starts
 /// </summary>
 /// <param name="sender">sender of the event</param>
 /// <param name="e">event arguments</param>
 void action_DownloadStarted(object sender, ItemDownloadEventArgs e)
 {
     onItemStarted(e);
 }