public ActionResult EditExpense(int id) { var expense = _expenseRepository.FindById(id).MapToView(); if (expense == null) { return(HttpNotFound()); } FillDropDownValuesForOfficialCurrency(); FillDropDownValuesForExpenseCategory(); // Allowance and Private Car Transportation can NOT be edited if (expense.ExpenseCategoryId == 1) { TempData["allowanceExpenseCanNotBeEditedMessage"] = "Allowance expense is calculated from departure/return dates and can not be edited here!"; ViewBag.WarningMessage = TempData["allowanceExpenseCanNotBeEditedMessage"].ToString(); return(PartialView("_InfoMessage")); } else if (expense.ExpenseCategoryId == 10) { TempData["privateCarExpenseCanNotBeEditedMessage"] = "Private Car expense is calculated from start/end mileage and can not be edited here!"; ViewBag.WarningMessage = TempData["privateCarExpenseCanNotBeEditedMessage"].ToString(); return(PartialView("_InfoMessage")); } else { return(PartialView("_EditExpense", expense)); } }
public async Task Handle(Command request, CancellationToken cancellationToken) { int expenseCategoryId; if (request.Category.IsNew) { var expenseCategory = new ExpenseCategory(request.Category.Name); await _expenseCategoryRepository.AddAsync(expenseCategory); await _expenseCategoryRepository.SaveChangesAsync(); expenseCategoryId = expenseCategory.ExpenseCategoryId; } else { expenseCategoryId = request.Category.ExpenseCategoryId.Value; } var expense = await _expenseRepository.FindById(request.ExpenseId); if (!request.JustThisOne && expense.ExpenseRecipientId.HasValue) { var expenseRecipient = await _expenseRecipientRepository.FindById(expense.ExpenseRecipientId.Value); expenseRecipient.ChangeExpenseCategory(expenseCategoryId, expense.ExpenseMonth); await _expenseRecipientRepository.SaveChangesAsync(); } else { expense.SetExpenseCategory(expenseCategoryId); await _expenseRepository.SaveChangesAsync(); } }
public async Task Handle(Command request, CancellationToken cancellationToken) { var expense = await _expenseRepository.FindById(request.ExpenseId); if (expense.ExpenseType == ExpenseType.BankTransfer) { await _savingsAccountRepository.AddAsync(new SavingsAccount(expense.ExpenseRecipientDetailCode)); await _savingsAccountRepository.SaveChangesAsync(); } }
public async Task Handle(Command request, CancellationToken cancellationToken) { var expenseRecipient = request.Recipient.IsNew ? new ExpenseRecipient(request.Recipient.Name) : await _expenseRecipientRepository.FindById(request.Recipient.ExpenseRecipientId.Value); var expense = await _expenseRepository.FindById(request.ExpenseId); if (expense.ExpenseType == ExpenseType.PosPayment) { expenseRecipient.AddPosTerminal(expense.ExpenseRecipientDetailCode); } else if (expense.ExpenseType == ExpenseType.BankTransfer) { expenseRecipient.AddIban(expense.ExpenseRecipientDetailCode); } else if (expense.ExpenseType == ExpenseType.DirectDebitPayment) { expenseRecipient.AddDirectDebit(expense.ExpenseRecipientDetailCode); } if (request.Recipient.IsNew) { await _expenseRecipientRepository.AddAsync(expenseRecipient); } await _expenseRecipientRepository.SaveChangesAsync(); if (expense.ExpenseType == ExpenseType.CashWithdrawal) { expense.SetExpenseRecipient(expenseRecipient.ExpenseRecipientId); expense.SetExpenseCategory(expenseRecipient.ExpenseCategoryId); await _expenseRepository.UpdateAsync(expense); await _expenseRepository.SaveChangesAsync(); } }