protected void ButtonSaveChanges_Click(object sender, EventArgs e) { // If the values in the controls are not valid, abort: if (!Page.IsValid) { return; } // Move on and parse values. double newAmount = Double.Parse(this.TextAmount.Text, new CultureInfo("sv-SE")); FinancialAccount newAccount = this.DropAccounts.SelectedFinancialAccount; string newDescription = this.TextDescription.Text; DateTime newDate = (DateTime)this.DateExpense.SelectedDate; if (newDescription != _expenseClaim.Description) { _expenseClaim.Description = newDescription; // Nothing invalidated because description updated // Should it? } if (newAccount.Identity != _expenseClaim.BudgetId) { if (_expenseClaim.Attested) { _expenseClaim.Attested = false; } if (_expenseClaim.BudgetYear == 0) { _expenseClaim.BudgetYear = _expenseClaim.CreatedDateTime.Year; } _expenseClaim.SetBudget(newAccount, _currentUser); } if (newAmount != (double)_expenseClaim.Amount) { if (_expenseClaim.Attested) { if (newAmount > _expenseClaim.PreApprovedAmount && newAmount > (double)_expenseClaim.Amount) { _expenseClaim.Attested = false; } } _expenseClaim.SetAmountCents((Int64)newAmount * 100, _currentUser); } if (newDate != _expenseClaim.ExpenseDate) { if (_expenseClaim.Validated) { _expenseClaim.Validated = false; } _expenseClaim.ExpenseDate = newDate; } // The financial transaction is now updated in ExpenseClaim. // Close and rebind ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true); }