Inheritance: IElasticItem
        public static GenericJsonCollection DeserializeFromStream(System.IO.Stream stream)
        {
            var serializer = new Newtonsoft.Json.JsonSerializer();

            serializer.TypeNameHandling       = TypeNameHandling.All;
            serializer.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;

            Dictionary <string, object> obj = null;

            using (var sr = new StreamReader(stream))
                using (var jsonTextReader = new JsonTextReader(sr)) {
                    obj = serializer.Deserialize <Dictionary <string, object> >(jsonTextReader);
                }

            JContainer items = (JContainer)obj["items"];

            GenericJsonCollection collection = new GenericJsonCollection();

            collection.items = new List <GenericJsonItem>();

            foreach (var item in items)
            {
                GenericJsonItem it = new GenericJsonItem(item.ToObject <Dictionary <string, object> >());
                collection.items.Add(it);
            }

            return(collection);
        }
        public static IElasticCollection CreateFromOpenSearchResultCollection(IOpenSearchResultCollection results)
        {
            if (results is GenericJsonCollection)
            {
                return((GenericJsonCollection)results);
            }

            GenericJsonCollection collection = new GenericJsonCollection();

            collection.links = results.Links;

            foreach (IOpenSearchResultItem result in results.Items)
            {
                var item = GenericJsonItem.FromOpenSearchResultItem(result);
                collection.items.Add(item);
            }
            return(collection);
        }
        public new static GenericJsonItem FromOpenSearchResultItem(IOpenSearchResultItem result)
        {
            if (result is GenericJsonItem)
            {
                return((GenericJsonItem)result);
            }

            GenericJsonItem item = new GenericJsonItem();

            item.Identifier = result.Identifier;
            item.Date       = result.Date;

            foreach (SyndicationElementExtension ext in result.ElementExtensions)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(ext.GetReader());
                var obj = JsonConvert.DeserializeObject <Dictionary <string, object> >(JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, false));

                item.payload.Add(ext.OuterName, obj[ext.OuterName]);
            }

            return(item);
        }
 public string ToJson(GenericJsonItem gj)
 {
     return JsonConvert.SerializeObject(gj.payload);
 }
        public static new GenericJsonItem FromOpenSearchResultItem(IOpenSearchResultItem result)
        {
            if (result is GenericJsonItem)
                return (GenericJsonItem)result;

            GenericJsonItem item = new GenericJsonItem();

            item.Identifier = result.Identifier;
            item.Date = result.Date;

            foreach (SyndicationElementExtension ext in result.ElementExtensions) {
                XmlDocument doc = new XmlDocument();
                doc.Load(ext.GetReader());
                var obj = JsonConvert.DeserializeObject<Dictionary<string, object>>(JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, false));

                item.payload.Add(ext.OuterName, obj[ext.OuterName]);
            }

            return item;
        }
        public static GenericJsonCollection DeserializeFromStream(System.IO.Stream stream)
        {
            var serializer = new Newtonsoft.Json.JsonSerializer();
            serializer.TypeNameHandling = TypeNameHandling.All;
            serializer.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;

            Dictionary<string, object> obj = null;
            using (var sr = new StreamReader(stream))
            using (var jsonTextReader = new JsonTextReader(sr)) {
                obj = serializer.Deserialize<Dictionary<string, object>>(jsonTextReader);
            }

            JContainer items = (JContainer)obj["items"];

            GenericJsonCollection collection = new GenericJsonCollection();
            collection.items = new List<GenericJsonItem>();

            foreach (var item in items) {
                GenericJsonItem it = new GenericJsonItem(item.ToObject<Dictionary<string, object>>());
                collection.items.Add(it);
            }

            return collection;
        }
 public string ToJson(GenericJsonItem gj)
 {
     return(JsonConvert.SerializeObject(gj.payload));
 }