public static ItemSet <T> FromJObject(JObject jobject) { ItemSet <T> item = new ItemSet <T>(); item.Id = IdObject.FromJObject(jobject); //the "@type" can come in as both a string and a string array, so we need to handle that var type = jobject["@type"].ToObject <object>(); if (type.GetType() == typeof(string)) { item.Type = new string[] { type.ToString() }; } else { item.Type = jobject["@type"].ToObject <string[]>(); } item.IsPublic = Helpers.TryGet <JToken>(jobject, "o:is_public")?.ToObject <bool?>(); item.Owner = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:owner")); item.ResourceClass = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:resource_class")); item.ResourceTemplate = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:resource_template")); item.Thumbnail = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:thumbnail")); item.Title = Helpers.TryGet <JToken>(jobject, "o:title")?.ToString(); item.Created = Helpers.DateTimeFromJObject(Helpers.TryGet <JObject>(jobject, "o:created")); item.Modified = Helpers.DateTimeFromJObject(Helpers.TryGet <JObject>(jobject, "o:modified")); item.IsOpen = Helpers.TryGet <JToken>(jobject, "o:is_open")?.ToObject <bool?>(); item.Vocabulary = new T(); item.Vocabulary.ApplyVocabulary(jobject); return(item); }
public static IdObject FromJObject(JObject jobject) { if (jobject == null) { return(null); } IdObject idObject = new IdObject(); idObject.Link = jobject["@id"].ToString(); idObject.Id = int.Parse(jobject["o:id"].ToString()); return(idObject); }
public static IdObject[] FromJArray(JArray array) { if (array == null) { return(null); } IdObject[] idObjects = new IdObject[array.Count]; int n = 0; foreach (var entry in array) { idObjects[n] = IdObject.FromJObject((JObject)entry); n++; } return(idObjects); }
public static Media <T> FromJObject(JObject jobject) { Media <T> media = new Media <T>(); media.Id = IdObject.FromJObject(jobject); //the "@type" can come in as both a string and a string array, so we need to handle that var type = jobject["@type"].ToObject <object>(); if (type.GetType() == typeof(string)) { media.Type = new string[] { type.ToString() }; } else { media.Type = jobject["@type"].ToObject <string[]>(); } media.IsPublic = Helpers.TryGet <JToken>(jobject, "o:is_public")?.ToObject <bool?>(); media.Owner = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:owner")); media.ResourceClass = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:resource_class")); media.ResourceTemplate = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:resource_template")); media.Thumbnail = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:thumbnail")); media.Title = Helpers.TryGet <JToken>(jobject, "o:title")?.ToString(); media.Created = Helpers.DateTimeFromJObject(Helpers.TryGet <JObject>(jobject, "o:created")); media.Modified = Helpers.DateTimeFromJObject(Helpers.TryGet <JObject>(jobject, "o:modified")); media.Vocabulary = new T(); media.Vocabulary.ApplyVocabulary(jobject); media.Item = IdObject.FromJObject(Helpers.TryGet <JObject>(jobject, "o:item")); media.Ingester = Helpers.TryGet <JToken>(jobject, "o:ingester")?.ToObject <string>(); media.Renderer = Helpers.TryGet <JToken>(jobject, "o:renderer")?.ToObject <string>(); media.Source = Helpers.TryGet <JToken>(jobject, "o:source")?.ToObject <string>(); media.MediaType = Helpers.TryGet <JToken>(jobject, "o:media_type")?.ToObject <string>(); media.SHA256 = Helpers.TryGet <JToken>(jobject, "o:sha256")?.ToObject <string>(); media.Size = Helpers.TryGet <JToken>(jobject, "o:size")?.ToObject <long?>(); media.Filename = Helpers.TryGet <JToken>(jobject, "o:filename")?.ToObject <string>(); media.OriginalUrl = Helpers.TryGet <JToken>(jobject, "o:original_url")?.ToObject <string>(); media.ThumbnailUrl = ThumbnailUrl.FromJObject(Helpers.TryGet <JObject>(jobject, "o:thumbnail_urls")); return(media); }