/// <summary>
        /// Called when a download link search is done.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void SingleDownloadSearchDone(object sender, EventArgs e)
        {
            _done.Add(sender as DownloadSearchEngine);

            (sender as DownloadSearchEngine).DownloadSearchNewLink -= SingleDownloadSearchNewLink;
            (sender as DownloadSearchEngine).DownloadSearchDone    -= SingleDownloadSearchDone;
            (sender as DownloadSearchEngine).DownloadSearchError   -= SingleDownloadSearchError;

            DownloadSearchEngineDone.Fire(this, SearchEngines.Except(_done).ToList());

            if (_done.Count == SearchEngines.Count)
            {
                Log.Debug("Search finished in " + (DateTime.Now - _start).TotalSeconds + "s.");
                DownloadSearchDone.Fire(this);
            }
        }
        /// <summary>
        /// Called when a download link search has encountered an error.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void SingleDownloadSearchError(object sender, EventArgs <string, Exception> e)
        {
            _done.Add(sender as DownloadSearchEngine);

            (sender as DownloadSearchEngine).DownloadSearchNewLink -= SingleDownloadSearchNewLink;
            (sender as DownloadSearchEngine).DownloadSearchDone    -= SingleDownloadSearchDone;
            (sender as DownloadSearchEngine).DownloadSearchError   -= SingleDownloadSearchError;

            Log.Warn("Error while searching on " + ((DownloadSearchEngine)sender).Name + ".", e.Second);

            DownloadSearchEngineError.Fire(this, e.First, e.Second);
            DownloadSearchEngineDone.Fire(this, SearchEngines.Except(_done).ToList());

            if (_done.Count == SearchEngines.Count)
            {
                Log.Debug("Search finished in " + (DateTime.Now - _start).TotalSeconds + "s.");
                DownloadSearchDone.Fire(this);
            }
        }