Exemplo n.º 1
0
        static void Main()
        {
            var httpWReq = (HttpWebRequest)WebRequest.Create("http://www.slamby.com/test/json/get/basic.json");
            var response = (HttpWebResponse)httpWReq.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var jsonContent = new StreamReader(stream: response.GetResponseStream()).ReadToEnd();

                #region WithJSON2BSON

                var dbtest = new EJDB("dbb")
                {
                    ThrowExceptionOnFail = true
                };
                dbtest.Save("doctest", dbtest.Json2Bson(jsonContent));
                var queryTest = dbtest.CreateQuery(new
                {
                    sex = "male"
                }, "doctest");
                using (var cursor = queryTest.Find())
                {
                    Console.WriteLine("Found" + cursor.Length + "names");
                }
                #endregion



                var dictionary = JSON.Instance.Parse(jsonContent) as Dictionary <string, object>;
                if (dictionary != null)
                {
                    var dict = new Dictionary <string, object>(dictionary);

                    var db = new EJDB("db")
                    {
                        ThrowExceptionOnFail = true
                    };
                    var bsonDocument = new BSONDocument();
                    foreach (var keyValuePair in dict)
                    {
                        if (keyValuePair.Value.GetType() != dict["dogs"].GetType())
                        {
                            bsonDocument.SetString(keyValuePair.Key, keyValuePair.Value.ToString());
                        }
                        else
                        {
                            if (dict["dogs"] as IEnumerable == null)
                            {
                                continue;
                            }
                            var dogsIndex     = 0;
                            var dogsBsonArray = new BSONArray();
                            foreach (var dog in dict["dogs"] as IEnumerable)
                            {
                                var dogsAttributes = JSON.Instance.Parse(dog as string) as Dictionary <string, string>;
                                if (dogsAttributes != null)
                                {
                                    var dogBsonValue = new BSONDocument();
                                    foreach (var dogAttribute in dogsAttributes)
                                    {
                                        dogBsonValue.SetString(dogAttribute.Key, dogAttribute.Value);
                                    }
                                    dogsBsonArray.SetObject(dogsIndex, dogBsonValue);
                                    dogsIndex++;
                                }
                            }
                            bsonDocument.SetArray("dogs", dogsBsonArray);
                        }
                    }

                    db.Save("doc", bsonDocument);

                    var query = db.CreateQuery(new {
                        sex = "male"
                    }, "doc");

                    /*using (var cursor = query.Find())
                     * {
                     *  Console.WriteLine("Found" + cursor.Length + "names");
                     * }*/

                    Console.ReadKey();
                    query.Dispose();
                    db.Dispose();
                }
            }
        }