public static Fragment Parse(String type, JToken json) { switch (type) { case "StructuredText": return(StructuredText.Parse(json)); case "Image": return(Image.Parse(json)); case "Link.web": return(WebLink.Parse(json)); case "Link.document": return(DocumentLink.Parse(json)); case "Link.file": return(FileLink.Parse(json)); case "Link.image": return(ImageLink.Parse(json)); case "Text": return(Text.Parse(json)); case "Select": return(Text.Parse(json)); case "Date": return(Date.Parse(json)); case "Timestamp": return(Timestamp.Parse(json)); case "Number": return(Number.Parse(json)); case "Color": return(Color.Parse(json)); case "Embed": return(Embed.Parse(json)); case "GeoPoint": return(GeoPoint.Parse(json)); case "Group": return(Group.Parse(json)); case "SliceZone": return(SliceZone.Parse(json)); default: return(json != null?Raw.Parse(json) : null); } }
public void ShouldGetFirstItemOfCompositeSlices() { var document = Fixtures.GetDocument("composite_slices.json"); var resolver = prismic.DocumentLinkResolver.For(doc => String.Format("http://localhost/{0}/{1}", doc.Type, doc.Id)); SliceZone sliceZone = document.GetSliceZone("page.page_content"); CompositeSlice firstSlice = (CompositeSlice)sliceZone.Slices[0]; StructuredText richText = firstSlice.GetPrimary().GetStructuredText("rich_text"); Assert.AreEqual("<p>Here is paragraph 1.</p><p>Here is paragraph 2.</p>", richText.AsHtml(resolver)); CompositeSlice secondSlice = (CompositeSlice)sliceZone.Slices[1]; String expectedUrl = "https://prismic-io.s3.amazonaws.com/levi-templeting%2Fdc0bfab3-d222-44a6-82b8-c74f8cdc6a6b_200_s.gif"; Assert.AreEqual(expectedUrl, secondSlice.GetItems().GroupDocs[0].GetImage("image").GetView("main").Url); }