public void Save() { // write changes to db db.Commit(data); // clear unit of work lists data = new GenericSet <T>(); }
/** * Save changes for genericsets to db */ public async void Commit <T>(GenericSet <T> set) where T : class { if (typeof(T) == typeof(AccountModel)) { Console.WriteLine("Writing changes to AccountModel database..."); // CREATE if (set.NewList.Count > 0) { await _bsonuserCollection.InsertManyAsync(ListToBson(set.NewList)); } // UPDATE foreach (var doc in set.DirtyList as List <AccountModel> ) { await _bsonuserCollection.ReplaceOneAsync(Builders <BsonDocument> .Filter.Eq("_id", doc.ID), doc.ToBsonDocument()); } // DELETE foreach (var doc in set.RemovedList as List <AccountModel> ) { await _bsonuserCollection.DeleteOneAsync(Builders <BsonDocument> .Filter.Eq("_id", doc.ID)); } } if (typeof(T) == typeof(MetadataModel)) { Console.WriteLine("Writing changes to Files database..."); // CREATE if (set.NewList.Count > 0) { await _bsonfilesCollection.InsertManyAsync(ListToBson(set.NewList)); } // UPDATE foreach (var doc in set.DirtyList as List <MetadataModel> ) { await _bsonfilesCollection.ReplaceOneAsync(Builders <BsonDocument> .Filter.Eq("_id", doc.itemId), doc.ToBsonDocument()); } // DELETE foreach (var doc in set.RemovedList as List <MetadataModel> ) { await _bsonfilesCollection.DeleteOneAsync(Builders <BsonDocument> .Filter.Eq("_id", doc.itemId)); } } }
public DataGateway(DbObj dbObj) { db = dbObj; data = new GenericSet <T>(); }