Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void RaiseSelectTransaction()
- {
- var confirmation = new TransactionSelectionConfirmation(Context);
- SelectTransaction.Raise(confirmation, c =>
- {
- Transaction transaction = c.Transaction;
- if (!c.Confirmed)
- {
- if (transaction != null && transaction.EntityState != EntityState.Detached)
- Context.Transactions.Detach(transaction);
- return;
- }
- Debug.Assert(transaction != null);
- OnTransactionSelected(transaction);
- });
- }
- private void OnTransactionSelected(Transaction transaction)
- {
- if (transaction is ProjectExpense || transaction is ProjectIncome)
- {
- RaiseSelectProject(new ProjectTransaction(transaction));
- mre.WaitOne();
- }
- if (transaction is Investment || transaction is ProjectInvestment)
- {
- RaiseSelectInvestor(new InvestmentTransaction(transaction));
- mre.WaitOne();
- }
- OnInsert(transaction);
- }
- ManualResetEvent mre = new ManualResetEvent(false);
- private void RaiseSelectProject(ProjectTransaction projectTransaction)
- {
- var confirmation = new ProjectSelectionConfirmation(Context);
- SelectProject.Raise(confirmation, c =>
- {
- if (!c.Confirmed)
- {
- Context.Transactions.Detach(projectTransaction.Transaction);
- return;
- }
- var project = c.Project;
- Debug.Assert(project != null && projectTransaction.Transaction.EntityState != EntityState.Detached);
- projectTransaction.Project = project;
- mre.Set();
- });
- }
- private void RaiseSelectInvestor(InvestmentTransaction investmentTransaction)
- {
- var confirmation = new InvestorSelectionConfirmation(Context);
- SelectInvestor.Raise(confirmation, c =>
- {
- if (!c.Confirmed)
- {
- Context.Transactions.Detach(investmentTransaction.Transaction);
- return;
- }
- var investor = c.Investor;
- Debug.Assert(investor != null && investmentTransaction.Transaction.EntityState != EntityState.Detached);
- investmentTransaction.Investor = investor;
- mre.Set();
- });
- }
- private void OnInsert(Transaction transaction)
- {
- EntitySet.Add(transaction);
- Current = transaction;
- EditCurrent();
- }
Advertisement
Add Comment
Please, Sign In to add comment