protected void ButtonRequest_Click(object sender, EventArgs e) { // The data has been validated client-side already. We'll throw unfriendly exceptions if invalid data is passed here. double amount = Double.Parse(this.TextAmount.Text, NumberStyles.Number); // parses in current culture - intentional Int64 amountCents = (Int64)amount * 100; string description = this.TextPurpose.Text; FinancialAccount budget = FinancialAccount.FromIdentity(Int32.Parse(this.Request.Form["DropBudgets"])); // sanity check if (budget.Organization.Identity != CurrentOrganization.Identity) { throw new InvalidOperationException("Budget-organization mismatch; won't file cash advance"); } // Store bank details for current user CurrentUser.BankName = this.TextBank.Text; CurrentUser.BankClearing = this.TextClearing.Text; CurrentUser.BankAccount = this.TextAccount.Text; // Create cash advance CashAdvance cashAdvance = CashAdvance.Create(CurrentOrganization, CurrentUser, CurrentUser, amountCents, budget, description); // Create success message string successMessage = string.Format(Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartOne, HttpUtility.HtmlEncode(CurrentUser.Name), HttpUtility.HtmlEncode(description), CurrentOrganization.Currency.Code, (double)(amountCents / 100.0)); if (budget.OwnerPersonId != CurrentUser.Identity) { successMessage += "<br/><br/>" + Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartTwo + "<br/>"; } else { successMessage += "<br/><br/>" + Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartTwoOwnBudget + "<br/>"; cashAdvance.Attest(CurrentUser); } Response.AppendCookie(new HttpCookie("DashboardMessage", HttpUtility.UrlEncode(successMessage))); // Redirect to dashboard Response.Redirect("/", true); }
protected void ButtonRequest_Click(object sender, EventArgs e) { // The data has been validated client-side already. We'll throw unfriendly exceptions if invalid data is passed here. Int64 amountCents = this.TextAmount.Cents; string description = this.TextPurpose.Text; FinancialAccount budget = this.ComboBudgets.SelectedAccount; // sanity check if (budget.Organization.Identity != CurrentOrganization.Identity) { throw new InvalidOperationException("Budget-organization mismatch; won't file cash advance"); } // Store bank details for current user CurrentUser.BankName = this.TextBank.Text; CurrentUser.BankClearing = this.TextClearing.Text; CurrentUser.BankAccount = this.TextAccount.Text; // Create cash advance CashAdvance cashAdvance = CashAdvance.Create(CurrentOrganization, CurrentUser, CurrentUser, amountCents, budget, description); // Create success message string successMessage = string.Format(Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartOne, HttpUtility.HtmlEncode(CurrentUser.Name), HttpUtility.HtmlEncode(description), CurrentOrganization.Currency.Code, amountCents / 100.0); if (budget.OwnerPersonId != CurrentUser.Identity) { successMessage += "<br/><br/>" + Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartTwo + "<br/>"; } else { successMessage += "<br/><br/>" + Resources.Pages.Financial.RequestCashAdvance_SuccessMessagePartTwoOwnBudget + "<br/>"; cashAdvance.Attest(CurrentUser); } DashboardMessage.Set(successMessage); // Redirect to dashboard Response.Redirect("/", true); }