private static void CreateDummyEntities() { using (TransactionScope lScope = new TransactionScope()) using (BackupBankEntityModelContainer lContainer = new BackupBankEntityModelContainer()) { if (lContainer.Accounts.Count() == 0) { Customer lVideoStore = new Customer(); Account lVSAccount = new Account() { AccountNumber = 123, Balance = 0 }; lVideoStore.Accounts.Add(lVSAccount); Customer lCustomer = new Customer(); Account lCustAccount = new Account() { AccountNumber = 456, Balance = 20 }; lCustomer.Accounts.Add(lCustAccount); lContainer.Customers.AddObject(lVideoStore); lContainer.Customers.AddObject(lCustomer); lContainer.SaveChanges(); lScope.Complete(); } } }
public void Transfer(double pAmount, int pFromAcctNumber, int pToAcctNumber) { String lLogMessage; try { using (TransactionScope lScope = new TransactionScope()) using (BackupBankEntityModelContainer lContainer = new BackupBankEntityModelContainer()) { //IOperationOutcomeService lOutcomeService = OperationOutcomeServiceFactory.GetOperationOutcomeService(pResultReturnAddress); Account lFromAcct = GetAccountFromNumber(pFromAcctNumber); Account lToAcct = GetAccountFromNumber(pToAcctNumber); lFromAcct.Withdraw(pAmount); lToAcct.Deposit(pAmount); lContainer.Attach(lFromAcct); lContainer.Attach(lToAcct); lContainer.ObjectStateManager.ChangeObjectState(lFromAcct, System.Data.EntityState.Modified); lContainer.ObjectStateManager.ChangeObjectState(lToAcct, System.Data.EntityState.Modified); lContainer.SaveChanges(); lLogMessage = "Transfer Request Succeeded (pAmount=" + pAmount + " , pFromAcctNumber=" + pFromAcctNumber + " , pToAcctNumber=" + pToAcctNumber + " )"; //we have to fill this within transaction scope or VS goes mad lScope.Complete(); //lOutcomeService.NotifyOperationOutcome(new OperationOutcome() { Outcome = OperationOutcome.OperationOutcomeResult.Successful }); } SystemWideLogging.LogServiceClient.LogEvent("BackupBank :: BackupBank.Business\\BackupBank.Business.Components\\TransferProvider.cs :: public void Transfer(double pAmount, int pFromAcctNumber, int pToAcctNumber, String pDescription)", lLogMessage); } catch (Exception lException) { SystemWideLogging.LogServiceClient.LogEvent("BackupBank :: BackupBank.Business\\BackupBank.Business.Components\\TransferProvider.cs :: public void Transfer(double pAmount, int pFromAcctNumber, int pToAcctNumber, String pDescription)", "Transfer Request Failed (pAmount=" + pAmount + " , pFromAcctNumber=" + pFromAcctNumber + " , pToAcctNumber=" + pToAcctNumber + " )"); Console.WriteLine("Error occured while transferring money: " + lException.Message); throw; //lOutcomeService.NotifyOperationOutcome(new OperationOutcome() { Outcome = OperationOutcome.OperationOutcomeResult.Failure, Message = lException.Message }); } }