GetChanges() public method

Get all changes from the database since a given change revision
public GetChanges ( string server, string db, bool includeDocs = false, long since ) : JsonData
server string The server URL
db string The database name
includeDocs bool
since long sequence number for the last checkpoint, defaults to 0 i.e. all changes
return LitJson.JsonData
Exemplo n.º 1
0
        public long ReplicateWith(string server, string database, bool reset = false)
        {
            long docsSync = 0;

            RemoteDB remoteDB = new RemoteDB();

            long lastSync = GetLastSync(server + "/" + database);

            if (reset)
            {
                lastSync = 0;
            }
            JsonData docs = remoteDB.GetChanges(server, database, true, lastSync);

            foreach (JsonData result in docs["results"])
            {
                string id  = (string)result["id"];
                string rev = (string)result["changes"][0]["rev"];
                //    //result.Remove("_rev");
                //    //result.Remove("_id");

                string doc = result["doc"].ToJson();

                try
                {
                    PutDoc(id, doc, rev);
                }
                catch (Exception ee)
                {
                    Debug.WriteLine(ee.ToString());
                }
            }
            docsSync = docs["results"].Count;
            ///Debug.WriteLine("Document sync: " + docs.results.Count);
            ////Debug.WriteLine(AllDocs());
            SetLastSync(server + "/" + database, (int)docs["last_seq"]);

            docs     = null;
            remoteDB = null;

            return(docsSync);
        }
Exemplo n.º 2
0
        public void ReplicationTest()
        {
            RemoteDB remoteDB = new RemoteDB();

            //DocInfo[] info = remoteDB.GetAllDocuments("http://127.0.0.1:5984", "test");

            NouchDB nouchDB = new NouchDB();
            //nouchDB.Delete(new Options());
            //Debug.WriteLine(nouchDB.Changes());
            //string res = RevsDiff(nouchDB, remoteDB, info);
            //res = "{\"keys\":" + res + "}";

            long lastSync = nouchDB.GetLastSync("http://127.0.0.1:5984/test");

            JsonData  docs = remoteDB.GetChanges("http://127.0.0.1:5984", "test", true, lastSync);

            foreach (JsonData result in docs["results"])
            {
                string id = (string) result["id"];
                string rev = (string) result["changes"][0]["rev"];
            //    //result.Remove("_rev");
            //    //result.Remove("_id");

                string doc = result["doc"].ToJson() ;

                try
                {
                    nouchDB.PutDoc(id, doc, rev);
                }
                catch (Exception ee)
                {
                    Debug.WriteLine(ee.ToString());
                }
            }

            Debug.WriteLine("Document sync: " + docs["results"].Count);
            Debug.WriteLine(nouchDB.AllDocs());
            nouchDB.SetLastSync("http://127.0.0.1:5984/test",(int) docs["last_seq"]);

            //nouchDB.Close();
        }
Exemplo n.º 3
0
        public long ReplicateWith(string server, string database, bool reset = false)
        {
            long docsSync = 0;

            RemoteDB remoteDB = new RemoteDB();

            long lastSync = GetLastSync(server+"/"+database);
            if (reset)
            {
                lastSync = 0;
            }
            JsonData docs = remoteDB.GetChanges(server, database, true, lastSync);

            foreach (JsonData result in docs["results"])
            {
                string id = (string)result["id"];
                string rev = (string)result["changes"][0]["rev"];
                //    //result.Remove("_rev");
                //    //result.Remove("_id");

                string doc = result["doc"].ToJson();

                try
                {
                    PutDoc(id, doc, rev);
                }
                catch (Exception ee)
                {
                    Debug.WriteLine(ee.ToString());
                }

            }
            docsSync = docs["results"].Count;
            ///Debug.WriteLine("Document sync: " + docs.results.Count);
            ////Debug.WriteLine(AllDocs());
            SetLastSync(server+"/"+database,(int)docs["last_seq"]);

            docs = null;
            remoteDB = null;

            return docsSync;
        }