Beispiel #1
0
        public ActionResult Add(AddExpenseViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    // save expense info
                    var expense = new Expense();
                    expense.Date        = DateTime.ParseExact(model.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                    expense.Name        = model.Name;
                    expense.Amount      = model.Amount;
                    expense.Description = model.Description;
                    db.Expenses.Add(expense);
                    db.SaveChanges();

                    // write action log
                    string actionLogData = "expense_id=" + expense.ExpenseId + ", name=" + expense.Name + ", amount=" + expense.Amount;
                    ActionLog.WriteLog(ActionLog.ADD_EXPENSE_INFO, actionLogData,
                                       User.Identity.Name, Request.ServerVariables["REMOTE_ADDR"]);

                    return(RedirectToAction("Index"));
                }
                ModelState.AddModelError("", "Thông tin chi phí không hợp lệ.");
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            return(View(model));
        }
Beispiel #2
0
        public IActionResult SubmitExpenses(AddExpenseViewModel model)
        {
            if (model.Expenses == null || model.Expenses.Count() == 0)
            {
                return(this.Json("No item found"));
            }
            else
            {
                foreach (var item in model.Expenses)
                {
                    if (String.IsNullOrEmpty(item.Address))
                    {
                        item.Address = "Current Location";
                    }
                    if (String.IsNullOrEmpty(item.Description))
                    {
                        item.Description = String.Empty;
                    }
                }

                try
                {
                    ExpensesContext.AddNewExpenses(model.Expenses.Select(x => AutoMapperFactory.ExpenseViewModel_UIExpense.CreateMapper().Map <UIExpense>(x)).Cast <Expense>().ToList(), GetUserInfo());
                }
                catch (Exception ex)
                {
                    return(this.Json("Failed to add new expense item."
                                     + Environment.NewLine + ex.Message));
                }

                ModelState.Clear();
                return(this.Json("Pass"));
            }
        }
Beispiel #3
0
        public Result <int> Add(AddExpenseViewModel model)
        {
            var category = _db.ExpenseCategories.Find(model.CategoryId);

            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."));
            }

            var expense = new Expense
            {
                Name       = model.Name,
                Value      = decimal.Parse(model.Value),
                DateTime   = model.DateTime ?? DateTime.UtcNow,
                UserId     = _currentUser.Id,
                CategoryId = category.Id
            };

            _db.Expenses.Add(expense);
            _db.SaveChanges();

            return(Result.Ok(expense.Id));
        }
Beispiel #4
0
        public IActionResult AddExpense(AddExpenseViewModel model)
        {
            if (!Request.Method.Equals("GET") && !Request.Form["submit"].Equals("SubmitExpenses"))
            {
                ModelState.Clear();
            }

            if (ModelState.IsValid)
            {
                if (Request.Method.Equals("GET"))
                {
                    if (model.Expenses == null)
                    {
                        model = GetInitialCntlrAddExpenseItem();
                    }

                    return(View(model));
                }
                else
                {
                    return(SubmitExpenses(model));
                }
            }
            else
            {
                if (model.ExpenseCategs == null)
                {
                    model.ExpenseCategs = LoadUserExpenseCategs(GetUserInfo());
                }

                return(View(model));
            }
        }
        public IActionResult Add(AddExpenseViewModel addExpenseViewModel)
        {
            if (ModelState.IsValid)
            {
                ExpenseCategory newCategory =
                    context.ExpenseCategories.Single(c => c.ID == addExpenseViewModel.ExpenseCategoryID);
                // Add the new cheese to my existing cheeses
                Expense newExpense = new Expense
                {
                    Date      = addExpenseViewModel.Date,
                    Reference = addExpenseViewModel.Reference,
                    Owner     = addExpenseViewModel.Owner,

                    Description     = addExpenseViewModel.Description,
                    Amount          = addExpenseViewModel.Amount,
                    ExpenseCategory = newCategory
                };

                context.Expenses.Add(newExpense);
                context.SaveChanges();

                return(Redirect("/Expense"));
            }

            return(View(addExpenseViewModel));
        }
Beispiel #6
0
 public AddExpense()
 {
     BindingContext = new AddExpenseViewModel();
     InitializeComponent();
     //Binding context should be set at the initial constructor to ensure that the binding elements are bound once the Add Expense page is initialized
     //Otherwise, the binding won't happen until the event is triggered; it won't look for the binding objects until the save button is clicked
 }
Beispiel #7
0
        public ActionResult CreateExpense(AddExpenseViewModel viewModel)
        {
            var     studentProfile = db.UserProfiles.Local.SingleOrDefault(u => u.UserName == User.Identity.Name) ?? db.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name);
            Expense expense        = db.Expenses.SingleOrDefault(e => e.ExpenseAccountNumber == viewModel.ExpenseAccountNumber);

            if (expense != null && ModelState.IsValid)
            {
                if (expense.bIsActive == true)
                {
                    StudentExpense studentExpense = new StudentExpense
                    {
                        bIsRecurring         = false, //Currently false by default, student user must set up recurring payment on different page.
                        bMissedPayment       = false,
                        CurrentAmountOwed    = 0,
                        ExpenseAccountNumber = viewModel.ExpenseAccountNumber,
                        Name      = viewModel.Name,
                        ExpenseID = expense.ExpenseID,
                        Company   = expense.Company,
                        StudentID = studentProfile.UserId
                    };

                    db.StudentExpenses.Add(studentExpense);
                    db.SaveChanges();

                    return(RedirectToAction("ViewExpenses"));
                }
            }
            return(View());  //TODO: Add redirect or error message for if there is an error or if account number does not exist.
        }
        public IActionResult Add()
        {
            IList <ExpenseCategory> expenseCategories   = context.ExpenseCategories.ToList();
            AddExpenseViewModel     addExpenseViewModel =
                new AddExpenseViewModel(context.ExpenseCategories.ToList(), null);

            return(View(addExpenseViewModel));
        }
        public AddExpensePage()
        {
            InitializeComponent();

            DataContext = new AddExpenseViewModel();

            dataManager = new DataManager();
        }
Beispiel #10
0
        private AddExpenseViewModel GetInitialCntlrAddExpenseItem()
        {
            AddExpenseViewModel model = new AddExpenseViewModel();

            model.Expenses      = new List <ExpenseViewModel>();
            model.ExpenseCategs = LoadUserExpenseCategs(GetUserInfo());

            return(model);
        }
Beispiel #11
0
        public void Execute(object parameter)
        {
            var window    = (Window)parameter;
            var viewModel = new AddExpenseViewModel(UserId);

            viewModel.UserName = UserName;
            AddExpense addExpense = new AddExpense(viewModel);

            window.Close();
            addExpense.Show();
        }
            public void Should_Be_Expense_When_Type_Selected_Is_Expense()
            {
                ViewModel = new AddExpenseViewModel(null, new List <Account> {
                    new Account("Test")
                })
                {
                    Date            = DateTime.Now,
                    WithdrawAccount = new Account("Test"),
                };

                Assert.IsInstanceOfType(ViewModel.Create(), typeof(Expense));
            }
        public AddExpense()
        {
            InitializeComponent();
            var uploadContenxt = new AddExpenseViewModel();

            BindingContext = uploadContenxt;

            Date.MinimumDate = new DateTime(DateTime.Now.Year, 1, 1);
            Date.Date        = DateTime.Today;
            Date.MaximumDate = DateTime.UtcNow;

            foreach (var category in uploadContenxt.Categories.Select(c => c.Name))
            {
                CategoryPicker.Items.Add(category);
            }
        }
Beispiel #14
0
        public IActionResult AddNewItem(AddExpenseViewModel model)
        {
            if (model.Expenses == null)
            {
                model = GetInitialCntlrAddExpenseItem();
            }
            else
            {
                model.ExpenseCategs = LoadUserExpenseCategs(GetUserInfo());
                model.Expenses.Add(GetInitialUIExpenseItem());
            }

            ModelState.Clear();

            return(View(model));
        }
Beispiel #15
0
        public IActionResult RemoveItem(AddExpenseViewModel model, int index)
        {
            if (model.Expenses == null)
            {
                model = GetInitialCntlrAddExpenseItem();
            }
            else
            {
                model.ExpenseCategs = LoadUserExpenseCategs(GetUserInfo());
                model.Expenses.RemoveAt(index);
            }

            ModelState.Clear();

            return(View(model));
        }
        public void Execute(object parameter)
        {
            var window    = (Window)parameter;
            var viewModel = new AddExpenseViewModel(ExpenseTrackerManagerViewModel.UserId);

            viewModel.UserName         = ExpenseTrackerManagerViewModel.UserName;
            viewModel.Amount           = ExpenseTrackerManagerViewModel.ExpenseDetails.Amount;
            viewModel.ExpenseDate      = DateTime.Parse(ExpenseTrackerManagerViewModel.ExpenseDetails.ExpenseDate);
            viewModel.Item             = ExpenseTrackerManagerViewModel.ExpenseDetails.Item;
            viewModel.UserId           = ExpenseTrackerManagerViewModel.ExpenseDetails.UserId;
            viewModel.CategoryId       = ExpenseTrackerManagerViewModel.ExpenseDetails.CategoryId;
            viewModel.ExpenseTrackerId = ExpenseTrackerManagerViewModel.ExpenseDetails.ExpenseTrackerId;
            AddExpense addExpense = new AddExpense(viewModel);

            window.Close();
            addExpense.Show();
        }
        public EditExpenseWindow(int logedInUserId, Expense expense)
        {
            InitializeComponent();
            _mViewModel      = new AddExpenseViewModel(logedInUserId);
            this.DataContext = _mViewModel;

            // set view model datas
            _mViewModel.ExpenseName        = expense.ExpenseName;
            _mViewModel.ExpenseDescription = expense.ExpenseDescription;
            _mViewModel.ExpenseAmount      = expense.Amount.ToString();
            _mViewModel.ReceiptUrl         = expense.ExpenseBillImageUrl;

            if (expense.ExpenseBillImageUrl != "")
            {
                _mViewModel.ReceiptUrlPreview = expense.ExpenseBillImageUrl;
            }
        }
        public IActionResult AddExpense(AddExpenseViewModel addExpenseViewModel)
        {
            if (ModelState.IsValid)
            {
                Expense newExpense = new Expense
                {
                    Name   = addExpenseViewModel.Name,
                    Amount = addExpenseViewModel.Amount,
                    Type   = addExpenseViewModel.Type
                             //Balance = addExpenseViewModel.Balance,
                             //Percent = addExpenseViewModel.Percent
                };

                context.Expenses.Add(newExpense);
                context.SaveChanges();

                return(Redirect("/Expense/Index"));
            }

            return(View(addExpenseViewModel));
        }
        public async Task <IActionResult> Edit(AddExpenseViewModel addExpenseViewModel)
        {
            var expense = context.Expenses.SingleOrDefault((l) => l.ID == addExpenseViewModel.ID);

            if (expense == null)
            {
                return(NotFound());
            }
            var newExpenseCategories = context.ExpenseCategories;

            var viewModel = new AddExpenseViewModel(newExpenseCategories, expense);

            var existingExpenseCategory = context.ExpenseCategories.SingleOrDefault(c => c.ID == expense.ExpenseCategoryID);

            if (existingExpenseCategory != null)
            {
                viewModel.ExpenseCategory   = existingExpenseCategory;
                viewModel.ExpenseCategoryID = existingExpenseCategory.ID;
            }

            return(View(viewModel));
        }
Beispiel #20
0
 async void OnSaveButton_Clicked(object sender, EventArgs e)
 {
     AddExpenseViewModel.Add(ExpenseDescription.Text, expAmount, AddExpDate.Date, (ExpenseCategory)SelectCategory.SelectedItem);
     await Navigation.PopAsync();
 }
Beispiel #21
0
 public AddExpenseCommand(AddExpenseViewModel addExpenseViewModel)
 {
     this.AddExpenseViewModel = addExpenseViewModel;
 }
        /*  [HttpGet]
         * public IActionResult Expense()
         * {
         *    List<Expense> expenses = ExpenseData.GetAll();
         *
         *    return View(expenses);
         * }
         */



        public IActionResult AddExpense()
        {
            AddExpenseViewModel addExpenseViewModel = new AddExpenseViewModel();

            return(View(addExpenseViewModel));
        }
Beispiel #23
0
 public IActionResult Add(AddExpenseViewModel model)
 {
     _ = _expenseStore.Add(model);
     return(RedirectToAction(nameof(Search)));
 }
 public AddExpense(AddExpenseViewModel viewModel)
 {
     this.DataContext = viewModel;
     InitializeComponent();
 }
Beispiel #25
0
 public AddExpenseCancelCommand(AddExpenseViewModel addExpenseViewModel)
 {
     AddExpenseViewModel = addExpenseViewModel;
 }
Beispiel #26
0
 public AddExpenseWindow(int logedInUserId)
 {
     InitializeComponent();
     _mViewModel      = new AddExpenseViewModel(logedInUserId);
     this.DataContext = _mViewModel;
 }