Example #1
0
        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);
        }
Example #2
0
 partial void PostProcessing(ClientInfo clientInfo, ref NorthwindResultSet result, INorthwindRepository repository);