Beispiel #1
0
        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));
        }
Beispiel #3
0
        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 })));
            }
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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"));
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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));
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
 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();
 }
Beispiel #13
0
        public IActionResult Edit(EditExpenseViewModel model)
        {
            var result = _expenseStore.Edit(model);

            return(MapToResponse(result, () => RedirectToAction(nameof(Search))));
        }