public NorthwindResultSet SubmitChanges(ClientInfo clientInfo, NorthwindChangeSet changeSet) { var resultSet = new NorthwindResultSet(changeSet); using (var transactionScope = CreateSavingTransactionScope()) { using (var dataRepository = _repositoryFactory(clientInfo)) { // optional custom processing PreProcessing(clientInfo, ref changeSet, dataRepository); // apply chnages to repository ApplyChanges(dataRepository, dataRepository.Categories, changeSet, changeSet.Categories, clientInfo); ApplyChanges(dataRepository, dataRepository.DemographicGroups, changeSet, changeSet.DemographicGroups, clientInfo); ApplyChanges(dataRepository, dataRepository.Customers, changeSet, changeSet.Customers, clientInfo); ApplyChanges(dataRepository, dataRepository.DynamicContentEntities, changeSet, changeSet.DynamicContentEntities, clientInfo); ApplyChanges(dataRepository, dataRepository.Employees, changeSet, changeSet.Employees, clientInfo); ApplyChanges(dataRepository, dataRepository.Order_Details, changeSet, changeSet.Order_Details, clientInfo); ApplyChanges(dataRepository, dataRepository.Orders, changeSet, changeSet.Orders, clientInfo); ApplyChanges(dataRepository, dataRepository.Products, changeSet, changeSet.Products, clientInfo); ApplyChanges(dataRepository, dataRepository.Regions, changeSet, changeSet.Regions, clientInfo); ApplyChanges(dataRepository, dataRepository.Shippers, changeSet, changeSet.Shippers, clientInfo); ApplyChanges(dataRepository, dataRepository.Suppliers, changeSet, changeSet.Suppliers, clientInfo); ApplyChanges(dataRepository, dataRepository.Territories, changeSet, changeSet.Territories, clientInfo); // optional custom processing BeforeSaving(clientInfo, ref changeSet, dataRepository); // save changes SaveChanges(dataRepository, changeSet, resultSet); // optional custom processing PostProcessing(clientInfo, ref resultSet, dataRepository); } transactionScope.Complete(); } return(resultSet); }
partial void PostProcessing(ClientInfo clientInfo, ref NorthwindResultSet result, INorthwindRepository repository);