public TableInheritanceDemoDBResultSet SubmitChanges(ClientInfo clientInfo, TableInheritanceDemoDBChangeSet changeSet) { var resultSet = new TableInheritanceDemoDBResultSet(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.People, changeSet, changeSet.People, clientInfo); ApplyChanges(dataRepository, dataRepository.Addresses, changeSet, changeSet.Addresses, clientInfo); ApplyChanges(dataRepository, dataRepository.Demographics, changeSet, changeSet.Demographics, clientInfo); ApplyChanges(dataRepository, dataRepository.EmployeeRoles, changeSet, changeSet.EmployeeRoles, 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 TableInheritanceDemoDBResultSet result, ITableInheritanceDemoDBRepository repository);