public Result Edit(EditExpenseViewModel model) { var expense = _db.Expenses.Find(model.ExpenseId); var category = _db.ExpenseCategories.Find(model.CategoryId); if (expense is null) { return(Result.NotValid("Wydatek nie został znaleziony.")); } if (expense.UserId != _currentUser.Id) { return(Result.NotValid("Ten wydatek nie należy do Ciebie.")); } if (category is null) { return(Result.NotValid("Kategoria nie istnieje.")); } if (category.UserId != _currentUser.Id) { return(Result.NotValid("Ta kategoria nie należy do Ciebie.")); } expense.Name = model.Name; expense.Value = decimal.Parse(model.Value); expense.DateTime = model.DateTime ?? DateTime.UtcNow; expense.CategoryId = category.Id; _db.SaveChanges(); return(Result.Ok()); }
public ActionResult AddExpense(EditExpenseViewModel vm, bool isDone = false) { ViewBag.Title = "Edit Expense"; if (vm.ExpenseId == 0) { ModelState.Remove("ExpenseId"); if (!ModelState.IsValid) { ViewBag.Title = "Add Expense"; return(PartialView("EditExpense")); } var expense = ExpenseService.AddExpense(vm, User.Identity.Name); vm.ExpenseId = expense.Id; if (isDone) { return(RedirectToAction("Index", new { expenseId = vm.ExpenseId })); } return(PartialView("EditExpense", vm)); } return(isDone ? RedirectToAction("Index", new { expenseId = vm.ExpenseId }) : EditExpense(vm)); }
public ActionResult Edit(int id) { try { // get edited expense var editedExpense = db.Expenses.Where(ex => ex.ExpenseId == id).FirstOrDefault(); if (editedExpense != null) { EditExpenseViewModel model = new EditExpenseViewModel(); model.ExpenseId = editedExpense.ExpenseId; model.Date = editedExpense.Date.ToString("dd/MM/yyyy"); model.Name = editedExpense.Name; model.Amount = editedExpense.Amount; model.Description = editedExpense.Description; return(View(model)); } return(RedirectToAction("Message", "Error", new RouteValueDictionary(new { message = "Không tìm thấy chi phí cần chỉnh sửa!" }))); } catch (Exception ex) { return(RedirectToAction("Message", "Error", new RouteValueDictionary(new { message = ex.Message }))); } }
public void AddExpense(EditExpenseViewModel vm, string username) { var expense = new Expense { Name = vm.Name, Amount = vm.Amount, Balance = vm.Amount, InterestRate = vm.InterestRate, Username = username }; FinancialPlannerRepository.AddExpense(expense); FinancialPlannerRepository.Save(); }
public EditExpense(string expenseId) { idOfExpenseToEdit = expenseId; // Looking up the expense here to prove that looking it up works // View should pass the id to a method on the viewmodel, // then the viewmodel should look up the expense and implement // the properties that the view will bind to BindingContext = new EditExpenseViewModel(expenseId); // Overwriting the properties of the specified expense to prove // that it works. InitializeComponent(); }
public ActionResult EditExpense(EditExpenseViewModel vm) { if (!ModelState.IsValid) { ViewBag.Title = "Edit Expense"; return(View(vm)); } var saved = ExpenseService.EditExpense(vm); if (!saved) { return(View("Error")); } return(RedirectToAction("Index")); }
public ActionResult Edit(EditExpenseViewModel model) { try { // get edited expense var editedExpense = db.Expenses.Where(ex => ex.ExpenseId == model.ExpenseId).FirstOrDefault(); if (editedExpense != null) { // create action log var actionLogData = "expense_id=" + editedExpense.ExpenseId + ", date=" + editedExpense.Date.ToString("dd/MM/yyyy HH:mm") + ", name=" + editedExpense.Name + ", amount=" + editedExpense.Amount; // update expense info editedExpense.Date = DateTime.ParseExact(model.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture); editedExpense.Name = model.Name; editedExpense.Amount = model.Amount; editedExpense.Description = model.Description; db.SaveChanges(); // write action log actionLogData += ", new_date=" + editedExpense.Date.ToString("dd/MM/yyyy HH:mm") + ", new_name=" + editedExpense.Name + ", new_amount=" + editedExpense.Amount; ActionLog.WriteLog( ActionLog.EDIT_EXPENSE_INFO, actionLogData, User.Identity.Name, Request.ServerVariables["REMOTE_ADDR"]); return(RedirectToAction("Index")); } return(RedirectToAction("Message", "Error", new RouteValueDictionary(new { message = "Không tìm thấy chi phí cần chỉnh sửa!" }))); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } return(View(model)); }
public EditExpenseViewModel MapEditExpenseViewModel(int id) { var expense = FinancialPlannerRepository.GetExpenses().FirstOrDefault(m => m.Id == id); if (expense == null) { return(null); } var vm = new EditExpenseViewModel { ExpenseId = expense.Id, Name = expense.Name, Amount = expense.Amount, InterestRate = expense.InterestRate }; return(vm); }
public ActionResult AddExpense(EditExpenseViewModel vm) { ViewBag.Title = "Edit Expense"; if (vm.ExpenseId == 0) { ModelState.Remove("ExpenseId"); if (!ModelState.IsValid) { ViewBag.Title = "Add Expense"; return(View("EditExpense")); } ExpenseService.AddExpense(vm, User.Identity.Name); return(PartialView("EditExpense", vm)); } return(EditExpense(vm)); }
public ActionResult EditExpense(EditExpenseViewModel vm, bool isDone = false) { if (!ModelState.IsValid) { ViewBag.Title = "Edit Expense"; return(View(vm)); } var saved = ExpenseService.EditExpense(vm); if (!saved) { return(PartialView("Error")); } if (isDone) { return(RedirectToAction("Index", new { expenseId = vm.ExpenseId })); } return(PartialView("EditExpense", vm)); }
public bool EditExpense(EditExpenseViewModel vm) { var expense = FinancialPlannerRepository.GetExpenses().FirstOrDefault(m => m.Id == vm.ExpenseId); if (expense == null) { return(false); } var transactions = FinancialPlannerRepository.GetTransactions().Where(m => m.ExpenseId == expense.Id).ToList(); var withdrawalAmount = transactions.Where(m => m.IsWithdrawal).Sum(m => m.Amount); var depositAmount = transactions.Where(m => !m.IsWithdrawal).Sum(m => m.Amount); expense.Name = vm.Name; expense.Amount = vm.Amount; expense.InterestRate = vm.InterestRate; expense.Balance = vm.Amount + (depositAmount - withdrawalAmount); FinancialPlannerRepository.EditExpense(expense); FinancialPlannerRepository.Save(); return(true); }
private void OnSaveButton_Clicked(object sender, EventArgs e) { //Write method to EditExpenseVM with expense description parameter so that the VM has the information needed to compare to EditExpenseViewModel.UpdateChanges(ExpenseDescription.Text, expAmount, EditExpDate.Date, (ExpenseCategory)SelectCategory.SelectedItem); Navigation.PopAsync(); }
public IActionResult Edit(EditExpenseViewModel model) { var result = _expenseStore.Edit(model); return(MapToResponse(result, () => RedirectToAction(nameof(Search)))); }