Ejemplo n.º 1
0
        internal Datastore(DatastoreManager manager, TextReader reader)
        {
            _manager = manager;
            _tables  = new Dictionary <string, Table>();

            using (var jsonReader = new JsonTextReader(reader))
            {
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.StartObject)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected StartObject but was " + jsonReader.TokenType);
                }
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'id' but was " + jsonReader.TokenType);
                }
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.String)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected String but was " + jsonReader.TokenType);
                }
                Id = (string)jsonReader.Value;
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'handle' but was " + jsonReader.TokenType);
                }
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.String)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected String but was " + jsonReader.TokenType);
                }
                Handle = (string)jsonReader.Value;
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'rev' but was " + jsonReader.TokenType);
                }
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.Integer)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected Integer but was " + jsonReader.TokenType);
                }
                Rev = (long)jsonReader.Value;
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'tables' but was " + jsonReader.TokenType);
                }
                if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.StartObject)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected StartObject but was " + jsonReader.TokenType);
                }
                while (jsonReader.Read() && jsonReader.TokenType == JsonToken.PropertyName)
                {
                    var table = new Table(_manager, this, (string)jsonReader.Value);
                    _tables.Add(table.Id, table);

                    table.Load(jsonReader);
                }
                if (jsonReader.TokenType != JsonToken.EndObject)
                {
                    throw new DatastoreException("Error loading datastore snapshot. Expected EndObject but was " + jsonReader.TokenType);
                }
            }
        }
Ejemplo n.º 2
0
 internal Table(DatastoreManager manager, Datastore store, string id)
 {
     Datastore       = store;
     Id              = id;
     _manager        = manager;
     _rows           = new Dictionary <string, Row>();
     _pendingChanges = new List <JArray>();
 }
Ejemplo n.º 3
0
 internal Datastore(DatastoreManager manager, string id, string handle)
 {
     Id       = id;
     Handle   = handle;
     Rev      = 0;
     _manager = manager;
     _tables  = new Dictionary <string, Table>();
 }