Exemple #1
0
        public Dictionary<string, object> Insert(string tableName, Dictionary<string, object> row)
        {
            _db.FireOnInsert(tableName, row);

            var autoKeys = _db.NewAutokey(tableName);
            var inserted = row.ScrubNulls().Union(autoKeys);

            var pks = _db.ExtractKeys(tableName, inserted);
            _operations.Add(new InsertOp(tableName, inserted));
            return pks;
        }
Exemple #2
0
        public virtual void Delete(string tableName, Dictionary<string, object> fieldValues)
        {
            FireOnDelete(tableName, fieldValues);

            if (DataStore.ContainsKey(tableName))
            {
                fieldValues = fieldValues.ScrubNulls();
                var victims = DataStore[tableName].FindByFieldValues(fieldValues).ToList();
                victims.ForEach(x => DataStore[tableName].Remove(x));
            }
        }
Exemple #3
0
 public void Update(string tableName, Dictionary<string, object> dataFields, Dictionary<string, object> keyFields)
 {
     _db.FireOnUpdate(tableName, dataFields, keyFields);
     _operations.Add(new UpdateOp(tableName, dataFields.ScrubNulls(), keyFields.ScrubNulls()));
 }
Exemple #4
0
 public void Delete(string tableName, Dictionary<string, object> row)
 {
     _db.FireOnDelete(tableName, row);
     _operations.Add(new DeleteOp(tableName, row.ScrubNulls()));
 }
Exemple #5
0
        public virtual void Update(string tableName, Dictionary<string, object> dataFields, Dictionary<string, object> keyFields)
        {
            FireOnUpdate(tableName, dataFields, keyFields);

            if(!DataStore.ContainsKey(tableName))
                return;

            dataFields = dataFields.ScrubNulls();
            keyFields = keyFields.ScrubNulls();

            var victims = DataStore[tableName].Where(r => r.IsSameAs(keyFields, keyFields.Keys, null));
            foreach (var vic in victims)
                foreach (var key in dataFields.Keys)
                    vic[key] = dataFields[key];
        }
Exemple #6
0
        public virtual Dictionary<string, object> Insert(string tableName, Dictionary<string, object> row)
        {
            FireOnInsert(tableName, row);

            if (!DataStore.ContainsKey(tableName))
                DataStore.Add(tableName, new FakeDBTable());

            var table = DataStore[tableName];

            row = row.ScrubNulls();

            var autoKeys = NewAutokey(tableName);
            var dictToUse = row.Union(autoKeys);
            CheckKeys(tableName, dictToUse);
            table.Add(dictToUse);

            return this.ExtractKeys(tableName, dictToUse);
        }