public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            List <CategoryDto> categories = _categoryService.GetAll().ToList();

            if (!_expenditureService.GetAll().Any(e => e.ExpenditureId == (int)id))
            {
                return(HttpNotFound());
            }
            var expenditure = _expenditureService.GetById((int)id);
            ExpenditureFormViewModel viewModel = new ExpenditureFormViewModel()
            {
                Categories    = new SelectList(categories, "CategoryId", "Name", expenditure.CategoryId),
                ExpenditureId = expenditure.ExpenditureId,
                Number        = expenditure.Number,
                Name          = expenditure.Name,
                Header        = "Edit expenditure"
            };

            return(View("ExpenditureForm", viewModel));
        }
        public ActionResult Update(ExpenditureFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound());
            }

            var expenditure = _expenditureService.GetById(viewModel.ExpenditureId);

            if (expenditure == null)
            {
                return(HttpNotFound());
            }
            ExpenditureDto expToUpdate = new ExpenditureDto()
            {
                CategoryId = viewModel.CategoryId,
                Number     = viewModel.Number,
                Name       = viewModel.Name
            };

            expenditure.Update(expToUpdate);

            _expenditureService.Update(expenditure);
            return(RedirectToAction("Index"));
        }
        public ActionResult Create()
        {
            List <CategoryDto> categories = _categoryService.GetAll().ToList();

            ExpenditureFormViewModel viewModel = new ExpenditureFormViewModel()
            {
                Categories = new SelectList(categories, "CategoryId", "Name"),
                Header     = "Creating expenditure"
            };

            return(View("ExpenditureForm", viewModel));
        }
        public ActionResult Create(ExpenditureFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("ExpenditureForm", viewModel));
            }

            var expenditure = new ExpenditureDto()
            {
                Number     = viewModel.Number,
                Name       = viewModel.Name,
                CategoryId = viewModel.CategoryId
            };

            _expenditureService.Add(expenditure);
            return(RedirectToAction("Index"));
        }