/// <inheritdoc/> protected bool Equals(DownloadRetrievalMethod other) { if (other == null) { return(false); } return(base.Equals(other) && other.Href == Href && other.Size == Size); }
private void Retrieve(DownloadRetrievalMethod retrievalMethod, string localPath) { _feedBuilder.RetrievalMethod = retrievalMethod; using (var handler = new GuiTaskHandler(this)) { _feedBuilder.TemporaryDirectory = (localPath == null) ? retrievalMethod.DownloadAndApply(handler) : retrievalMethod.LocalApply(localPath, handler); } }
/// <inheritdoc/> protected override TemporaryFile Download(DownloadRetrievalMethod retrievalMethod, object tag = null) { #region Sanity checks if (retrievalMethod == null) throw new ArgumentNullException("retrievalMethod"); #endregion try { return base.Download(retrievalMethod, tag); } catch (WebException ex) { Log.Warn(ex); if (retrievalMethod.Href.IsLoopback) throw; Log.Info("Trying mirror"); try { var mirrored = (DownloadRetrievalMethod)retrievalMethod.CloneRecipeStep(); mirrored.Href = GetMirrorUrl(retrievalMethod.Href); return Download(mirrored, tag); } catch (WebException) { // Report the original problem instead of mirror errors ex.Rethrow(); throw; } } }
/// <inheritdoc/> protected bool Equals(DownloadRetrievalMethod other) { if (other == null) return false; return base.Equals(other) && other.Href == Href && other.Size == Size; }