public void LoadDetailEntryWithoutFeedTest() { var entry = OpdsItem.Load(new XmlTextReader("http://www.feedbooks.com/item/220817.atom")); Assert.IsNotNull(entry); Assert.IsInstanceOfType(entry, typeof(OpdsItem)); }
public void OpdsPriceGenerationTest() { var feed = OpdsItem.Load(new XmlTextReader("http://www.feedbooks.com/item/220817.atom")); var xml = feed.ToXml(); Trace.Write(xml); Assert.IsTrue(xml.Contains("opds:price")); }
private void OnOpdsLoaderDoWork(object sender, DoWorkEventArgs e) { try { e.Result = OpdsFeed.Load(new XmlTextReader(e.Argument as string)); } catch (XmlException) { e.Result = new OpdsFeed(new[] { OpdsItem.Load(new XmlTextReader(e.Argument as string)) }); } }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="response"></param> public static void WriteTo(this OpdsItem item, HttpResponse response) { response.Clear(); response.ContentType = OpdsMediaType.Entry; response.ContentEncoding = Encoding.UTF8; var xmlWriter = new XmlTextWriter(response.Output); xmlWriter.Indentation = 4; xmlWriter.Formatting = Formatting.Indented; item.SaveAsAtom10(xmlWriter); }
public void IndirectAcquisitionReadingTest() { var entry = OpdsItem.Load(new XmlTextReader("http://www.feedbooks.com/item/220817.atom")); var link = entry.Links.Single(l => (l as OpdsLink).Prices.Count > 0) as OpdsLink; var indirectAcquisition = new OpdsIndirectAcquisition("application/zip"); indirectAcquisition.Items.Add(new OpdsIndirectAcquisition("application/epub+zip")); indirectAcquisition.Items.Add(new OpdsIndirectAcquisition("application/pdf")); indirectAcquisition.Items.Add(new OpdsIndirectAcquisition("application/msword")); link.IndirectAcquisitions.Clear(); link.IndirectAcquisitions.Add(indirectAcquisition); var xml = entry.ToXml(); entry = OpdsItem.Load(new XmlTextReader(new StringReader(xml))); link = entry.Links.Single(l => (l as OpdsLink).Prices.Count > 0) as OpdsLink; Assert.AreEqual(1, link.IndirectAcquisitions.Count); Assert.AreEqual(3, link.IndirectAcquisitions.First().Items.Count); Assert.AreEqual(xml, entry.ToXml()); }
private OpdsItem CreateBasicDataItems(IPropertyAccessor accessor, object item) { var syndicationItem = new OpdsItem { Title = item.GetProperty(Names.Title, accessor).MakeSyndicationContent(), Id = item.GetProperty(Names.Id, accessor).ToNullableString(), Summary = item.GetProperty(Names.Summary, accessor).MakeSyndicationContent(), }; if (syndicationItem.Id == null) { throw new InvalidProgramException(String.Format("Id is missing in the given data of type {0}.", item.GetType().FullName)); } var updateTime = item.GetProperty(Names.UpdateTime, accessor); if (updateTime != null && (DateTime)updateTime != DateTime.MinValue) { syndicationItem.LastUpdatedTime = new DateTimeOffset(Convert.ToDateTime(updateTime)); } ExtracPersonInfo(item, syndicationItem.Authors, Names.AuthorPrefix, accessor); return(syndicationItem); }