Guest User

Untitled

a guest
Feb 12th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.27 KB | None | 0 0
  1.   private void RaiseSelectTransaction()
  2.   {
  3.     var confirmation = new TransactionSelectionConfirmation(Context);
  4.     SelectTransaction.Raise(confirmation, c =>
  5.     {
  6.       Transaction transaction = c.Transaction;
  7.       if (!c.Confirmed)
  8.       {
  9.         if (transaction != null && transaction.EntityState != EntityState.Detached)
  10.           Context.Transactions.Detach(transaction);
  11.         return;
  12.       }
  13.       Debug.Assert(transaction != null);
  14.       OnTransactionSelected(transaction);
  15.     });
  16.   }
  17.  
  18.   private void OnTransactionSelected(Transaction transaction)
  19.   {
  20.     if (transaction is ProjectExpense || transaction is ProjectIncome)
  21.     {
  22.       RaiseSelectProject(new ProjectTransaction(transaction));
  23.       mre.WaitOne();
  24.     }      
  25.      
  26.     if (transaction is Investment || transaction is ProjectInvestment)
  27.     {
  28.       RaiseSelectInvestor(new InvestmentTransaction(transaction));
  29.       mre.WaitOne();
  30.     }
  31.  
  32.     OnInsert(transaction);
  33.   }
  34.  
  35.   ManualResetEvent mre = new ManualResetEvent(false);
  36.   private void RaiseSelectProject(ProjectTransaction projectTransaction)
  37.   {
  38.     var confirmation = new ProjectSelectionConfirmation(Context);      
  39.     SelectProject.Raise(confirmation, c =>
  40.       {
  41.         if (!c.Confirmed)
  42.         {
  43.           Context.Transactions.Detach(projectTransaction.Transaction);
  44.           return;
  45.         }
  46.         var project = c.Project;
  47.         Debug.Assert(project != null && projectTransaction.Transaction.EntityState != EntityState.Detached);
  48.         projectTransaction.Project = project;
  49.         mre.Set();
  50.       });
  51.   }
  52.   private void RaiseSelectInvestor(InvestmentTransaction investmentTransaction)
  53.   {
  54.     var confirmation = new InvestorSelectionConfirmation(Context);
  55.     SelectInvestor.Raise(confirmation, c =>
  56.     {
  57.       if (!c.Confirmed)
  58.       {
  59.         Context.Transactions.Detach(investmentTransaction.Transaction);
  60.         return;
  61.       }
  62.       var investor = c.Investor;
  63.       Debug.Assert(investor != null && investmentTransaction.Transaction.EntityState != EntityState.Detached);
  64.       investmentTransaction.Investor = investor;
  65.       mre.Set();
  66.     });
  67.   }
  68.   private void OnInsert(Transaction transaction)
  69.   {
  70.     EntitySet.Add(transaction);
  71.     Current = transaction;
  72.     EditCurrent();
  73.   }
Advertisement
Add Comment
Please, Sign In to add comment