public void Commit() { _repository.BatchMode = true; foreach (var batchItem in _items) { switch (batchItem.Action) { case BatchAction.Add: _repository.Add(batchItem.Item); break; case BatchAction.Update: _repository.Update(batchItem.Item); break; case BatchAction.Delete: _repository.Delete(batchItem.Item); break; } } _repository.Save(); _repository.BatchMode = false; _items.Clear(); }
public void Commit() { _repository.BatchMode = true; foreach (var batchItem in _items) { switch (batchItem.Action) { case BatchAction.Add: _repository.Add(batchItem.Item); break; case BatchAction.Update: _repository.Update(batchItem.Item); break; case BatchAction.Delete: _repository.Delete(batchItem.Item); break; } } _repository.Save(); // call QueryManager.OnItem{action} for each item in the batch only after saving the whole batch foreach (var batchItem in _items) { switch (batchItem.Action) { case BatchAction.Add: _repository.NotifyQueryManagerOfAddedEntity(batchItem.Item); break; case BatchAction.Update: _repository.NotifyQueryManagerOfUpdatedEntity(batchItem.Item); break; case BatchAction.Delete: _repository.NotifyQueryManagerOfDeletedEntity(batchItem.Item); break; } } _repository.BatchMode = false; _items.Clear(); }