private void transactionsDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { int no = (int)transactionsDataGridView.Rows[e.RowIndex].Cells[CashBookTransaction.fNo].Value; int userNo = (int)transactionsDataGridView.Rows[e.RowIndex].Cells[CashBookTransaction.fUserNo].Value; int categoryNo = (int)transactionsDataGridView.Rows[e.RowIndex].Cells[CashBookTransaction.fCategoryNo].Value; int verificationNo = (int)transactionsDataGridView.Rows[e.RowIndex].Cells[CashBookTransaction.fVerificationNo].Value; var form = new CashBookTransactionForm(DataCache, MainForm.Guesser, no, verificationNo); DialogResult result = form.ShowDialog(); if (result == DialogResult.OK) { CashBookTransaction transaction; using (var core = new StandardBusinessLayer(DataCache)) { core.Connect(); transaction = core.UpdateCashBookTransaction(no, form.VerificationDate, form.AccountingDate, form.UserNo, form.CategoryNo, form.Amount, form.Note); } LoadTransactionGrid(); SelectGridTransaction(no); ApplicationEvents.OnCashBookTransactionUpdated(no, transaction.VerificationNo); } } }
public CashBookTransaction UpdateCashBookTransaction(int cashBookTransactionNo, DateTime verificationDate, DateTime accountingDate, int userNo, int categoryNo, decimal amount, string note) { CashBookTransaction transaction = GetCashBookTransaction(cashBookTransactionNo); transaction.UserNo = userNo; transaction.CategoryNo = categoryNo; transaction.Amount = amount; transaction.Note = note; Verification verification = DataCache.GetVerification(transaction.VerificationNo); //Verification verification = GetVerification(transaction.VerificationNo); verification.Date = DanielEiserman.DateAndTime.Date.FloorDateTime(verificationDate); verification.AccountingDate = DanielEiserman.DateAndTime.Date.FloorDateTime(accountingDate); if (verification.Date.Year != verificationDate.Year || verification.AccountingDate.Year != verificationDate.Year) { throw new InvalidOperationException("Datumet på verifikationen stämmer inte överens med dess värde."); } using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, TransactionHelper.Options(System.Transactions.IsolationLevel.ReadCommitted))) { Database.TheConnection.EnlistTransaction(Transaction.Current); DataCache.Save(verification); DataCache.Save(transaction); transactionScope.Complete(); } // Alert all listeners that a transaction was updated ApplicationEvents.OnCashBookTransactionUpdated(cashBookTransactionNo, verification.No); return(transaction); }