/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="title"></param> /// <returns></returns> private OpdsLink GetDownloadLink(string id, string title) { if (String.IsNullOrEmpty(DownloadLinkPattern)) { return(null); } var link = new OpdsLink { Title = title, RelationshipType = OpdsRelations.OpenAcquisition, Uri = new Uri(String.Format(WebRequestHelper.CurrentHostUri + DownloadLinkPattern, Uri.EscapeDataString(id)), UriKind.RelativeOrAbsolute) }; OnDownloadLinkGenerated(link); return(link); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="title"></param> /// <param name="price"></param> /// <returns></returns> private OpdsLink GetBuyLink(string id, string title, decimal price) { if (String.IsNullOrEmpty(BuyLinkPattern)) { return(null); } var link = new OpdsLink { Title = title, RelationshipType = OpdsRelations.Buy, Uri = new Uri(String.Format(WebRequestHelper.CurrentHostUri + BuyLinkPattern, Uri.EscapeDataString(id)), UriKind.RelativeOrAbsolute), }; link.Prices.Add(new OpdsPrice(price)); OnBuyLinkGenerated(link); return(link); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="title"></param> /// <returns></returns> private OpdsLink GetDetailLink(string id, string title) { if (String.IsNullOrEmpty(DetailLinkPattern)) { throw new InvalidOperationException("DetailLinkPattern is not set."); } var link = new OpdsLink { Title = title, MediaType = OpdsMediaType.Entry, RelationshipType = OpdsRelations.Alternate, Uri = new Uri(String.Format(WebRequestHelper.CurrentHostUri + DetailLinkPattern, Uri.EscapeDataString(id)), UriKind.RelativeOrAbsolute) }; OnDetailLinkGenerated(link); return(link); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="title"></param> /// <returns></returns> private OpdsLink GetNavigationLink(string id, string title) { if (String.IsNullOrEmpty(NavigationLinkPattern)) { throw new InvalidOperationException("NavigationLinkPattern is not set."); } var link = new OpdsLink { Title = title, // We don't know the media type of Uri point to. // It could either be a acquisition link or a navigation link. MediaType = OpdsMediaType.Feed, RelationshipType = OpdsRelations.Alternate, Uri = new Uri(String.Format(WebRequestHelper.CurrentHostUri + NavigationLinkPattern, Uri.EscapeDataString(id)), UriKind.RelativeOrAbsolute) }; OnNavigationLinkGenerated(link); return(link); }
/// <summary> /// /// </summary> /// <param name="link"></param> protected virtual void OnDownloadLinkGenerated(OpdsLink link) { }
/// <summary> /// /// </summary> /// <param name="link"></param> protected virtual void OnBuyLinkGenerated(OpdsLink link) { }
/// <summary> /// /// </summary> /// <param name="link"></param> protected virtual void OnDetailLinkGenerated(OpdsLink link) { }
/// <summary> /// /// </summary> /// <param name="link"></param> protected virtual void OnNavigationLinkGenerated(OpdsLink link) { }