Esempio n. 1
0
            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();
            }