public static void testSnapShot(CloudDBZoneSnapshot <BookInfo> snapshot)
 {
     if (snapshot != null)
     {
         TestTip.Inst.ShowText("Snapshot hasPendingWrites: " + snapshot.hasPendingWrites());
         TestTip.Inst.ShowText("Snapshot isFromCloud: " + snapshot.isFromCloud());
         TestTip.Inst.ShowText("Snapshot getSnapshotObjects: " + snapshot.getSnapshotObjects().size());
         TestTip.Inst.ShowText("Snapshot getDeletedObjects: " + snapshot.getDeletedObjects().size());
         TestTip.Inst.ShowText("Snapshot getUpsertedObjects: " + snapshot.getUpsertedObjects().size());
     }
 }
        private void processQueryResult(CloudDBZoneSnapshot <BookInfo> snapshot, string tag)
        {
            mObjectList = snapshot.getSnapshotObjects();
            List <BookInfo> bookInfoList = new List <BookInfo> ();

            try {
                string result = "";
                while (mObjectList.hasNext())
                {
                    BookInfo bookInfo = mObjectList.next();
                    bookInfoList.add(bookInfo);
                    result += $"{bookInfo.BookName} ";
                }
                TestTip.Inst.ShowText($"QueryResult {tag}: {result}");
            } catch (System.Exception e) {
                TestTip.Inst.ShowText($"QueryResult {tag}: {e.Message}");
            } finally {
                snapshot.release();
            }
        }