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; }
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)); } }
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())); }
public void Delete(string tableName, Dictionary<string, object> row) { _db.FireOnDelete(tableName, row); _operations.Add(new DeleteOp(tableName, row.ScrubNulls())); }
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]; }
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); }