// GET /expenses/getexpense/1
        public ActionResult GetExpense(int id)
        {
            var expense      = _context.Expenses.Include(e => e.ExpenseType).FirstOrDefault(e => e.Id == id);
            var expenseTypes = _context.ExpenseTypes.ToList();
            var expenseForm  = _context.ExpenseForms.FirstOrDefault(e => e.Id == expense.ExpenseFormId);

            if (expense == null)
            {
                return(Content("Expense is null"));
            }

            ViewBag.Title = "Expense - " + expense.ExpenseType.Name;

            var viewModel = new ExpenseViewModel
            {
                Id            = expense.Id,
                ExpenseTypes  = expenseTypes,
                ExpenseTypeId = expense.ExpenseTypeId,
                ExpenseType   = expense.ExpenseType,
                ExpenseForm   = expenseForm,
                ExpenseFormId = expense.ExpenseFormId,
                Date          = expense.Date,
                Cost          = expense.Cost
            };

            return(View("ExpenseForm", viewModel));
        }
        public ActionResult LoadEditExpensePartial(int id, int expenseType)
        {
            var expense = _context.Expenses.Include(e => e.ExpenseType).FirstOrDefault(e => e.Id == id);

            if (expenseType == 1)
            {
                var mileageViewModel = new MileageFormViewModel();
                return(PartialView("_MileageForm", mileageViewModel));
            }
            else
            {
                var expenseViewModel = new ExpenseViewModel
                {
                    Date          = expense.Date.Value,
                    DateTime      = expense.DateTime,
                    ExpenseTypeId = expense.ExpenseTypeId,
                    ExpenseFormId = expense.ExpenseFormId,
                    Cost          = expense.Cost,
                    Description   = expense.Description,
                    Id            = expense.Id,
                    ExpenseTypes  = _context.ExpenseTypes.ToList()
                };
                return(PartialView("_OtherExpenseForm", expenseViewModel));
            }
        }
Example #3
0
        public ActionResult List()
        {
            List <ExpenseViewModel> expenseList = new List <ExpenseViewModel>();
            string         cmdText        = "Select * from TblExpense";
            SqlCommand     sqlcommand     = new SqlCommand(cmdText, sqlconnection);
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlcommand);
            DataTable      dataTable      = new DataTable();

            sqlconnection.Open();
            sqlDataAdapter.Fill(dataTable);
            sqlconnection.Close();

            foreach (DataRow dataRow in dataTable.Rows)
            {
                ExpenseViewModel expense = new ExpenseViewModel();

                expense.Id          = Convert.ToInt32(dataRow["Id"]);
                expense.Name        = dataRow["Name"].ToString();
                expense.Amount      = Convert.ToDecimal(dataRow["Amount"]);
                expense.Description = dataRow["Description"].ToString();
                expense.ExpenseDate = Convert.ToDateTime(dataRow["ExpenseDate"]);

                expenseList.Add(expense);
            }
            return(View(expenseList));
        }
Example #4
0
        public async Task <IActionResult> Create([FromBody] ExpenseViewModel expenseVm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var user = userService.GetUser(expenseVm.UserId);
                if (user == null)
                {
                    return(BadRequest("user is not recognized"));
                }
                var amountValidationError = ValidateExpenseAmount(expenseVm.Amount);
                if (amountValidationError.Length > 0)
                {
                    return(BadRequest(amountValidationError));
                }
                var expenseRecord = await expenseService.SaveExpense(expenseVm);

                if (expenseRecord == null)
                {
                    return(NoContent());
                }
                return(Created($"expense/{expenseRecord.ExpenseId}", expenseRecord));
            }
            catch (Exception exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, exception));
            }
        }
        public async Task <IActionResult> Edit(int?id)
        {
            ExpenseViewModel model = new ExpenseViewModel
            {
                ExpensesType = _combosHelper.GetComboExpenses()
            };

            if (id == null)
            {
                return(NotFound());
            }

            ExpenseEntity expense = await _dataContext.Expenses
                                    .Include(et => et.ExpenseType)
                                    .FirstOrDefaultAsync(e => e.Id == id);

            model.Id          = expense.Id;
            model.Details     = expense.Details;
            model.PicturePath = expense.PicturePath;
            model.Value       = expense.Value;
            model.ExpenseId   = expense.ExpenseType.Id;
            model.LogoPath    = expense.ExpenseType.LogoPath;

            if (model == null)
            {
                return(NotFound());
            }

            return(View(model));
        }
        public async Task <Expense> SaveExpense(ExpenseViewModel expenseVm)
        {
            try
            {
                if (expenseVm == null)
                {
                    throw new ArgumentException($"expense cannot be null");
                }
                var expenseRecordExist = await expenseRepository.ExpenseExists(
                    expenseVm.Title, expenseVm.ExpenseDate.HasValue?
                    expenseVm.ExpenseDate.Value : DateTime.Now);

                if (expenseRecordExist)
                {
                    return(null);
                }
                var expense = BuildExpenseRecordFromModel(expenseVm);
                expense.Amount = !expenseVm.Amount.Trim().EndsWith("EUR", StringComparison.InvariantCultureIgnoreCase) ?
                                 double.Parse(expenseVm.Amount) : await SetAmount(expenseVm.Amount);

                return(await expenseRepository.SaveExpense(expense));
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #7
0
        //test
        //List<Expense> expenses;

        public ExpensePage()
        {
            InitializeComponent();

            BindingContext = viewModel = new ExpenseViewModel();
            //expenses = new List<Expense>();
        }
Example #8
0
        public ActionResult SaveExpense(int id, string userId)
        {
            // userId ya da id parametreleri yok kontrolü nasıl yapmalı?**

            //Control for authorization
            if (Convert.ToInt32(Session["UserRoleId"]) == (int)UserRoleEnum.Employee &&
                Convert.ToInt32(Session["UserId"]) == Int32.Parse(userId))
            {
                //To avoid editing an expense that was sent for approval
                int?currentStatusId = ExpenseActionHandlers.GetCurrentExpenseStatus(id).LastExpenseActionId;

                if ((currentStatusId == null && id == (int)StatusEnum.NotCreated) ||
                    currentStatusId == (int)StatusEnum.Ongoing ||
                    currentStatusId == (int)StatusEnum.Rejected)
                {
                    var viewModel = new ExpenseViewModel
                    {
                        ID     = id,
                        UserId = Int32.Parse(userId)
                    };
                    return(View(viewModel));
                }
                return(RedirectToAction("Index", "Employee", new { id = Int32.Parse(userId) }));
            }
            return(RedirectToAction("Login", "Home"));
        }
Example #9
0
        // GET: Expenses
        public ActionResult Index()
        {
            var expenseVm = new ExpenseViewModel();

            expenseVm.ListOfExpenses = _expenseRepository.GetWhereWithIncludes(e => e.Id > 0, x => x.BankAccount, x => x.SubCategory, x => x.Category).ToList();
            return(View(expenseVm));
        }
Example #10
0
        public async Task <IActionResult> Add([FromBody] ExpenseViewModel expenseViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Expense newExpense = new Expense()
            {
                Sum        = expenseViewModel.Sum,
                Note       = expenseViewModel.Note,
                CategoryId = expenseViewModel.CategoryId,
                Date       = expenseViewModel.Date,
                //TODO изменить userId
                UserId = "userid123123"
            };

            if (await _repository.AddAsync(newExpense))
            {
                return(StatusCode(201));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Example #11
0
        /// <summary>
        /// Get Expense by id
        /// </summary>
        /// <param name="id">Expense id</param>
        /// <returns>Expense json view model</returns>
        public IHttpActionResult Get(int id)
        {
            try
            {
                // get
                log.Debug("_expenseService.GetExpense - expenseId: " + id + " ");

                var expense = new ExpenseViewModel(_expenseService.GetExpense(id));

                log.Debug("_expenseService.GetExpense - " + ExpenseViewModel.FormatExpenseViewModel(expense));

                log.Debug("result: 'success'");

                //return Json(expense, JsonRequestBehavior.AllowGet);
                //return Content(JsonConvert.SerializeObject(expense), "application/json");
                //return expense;
                //return JsonConvert.SerializeObject(expense);
                return(Ok(expense));
            }
            catch (Exception e)
            {
                // error
                log.Error(e.ToString());

                throw;
            }
        }
Example #12
0
        public ActionResult Edit(ExpenseViewModel CVM)
        {
            ExpenseClient client = new ExpenseClient();

            client.Edit(CVM.Expense);
            return(RedirectToAction("Index"));
        }
Example #13
0
        public ActionResult Entry(ExpenseViewModel expense)
        {
            ExpenseModel data = new ExpenseModel();

            #region Income Model data maping
            data.Amount     = expense.Amount;
            data.BankId     = expense.BankId;
            data.Date       = expense.Date;
            data.Particular = expense.Particular;
            data.ChequeNo   = expense.ChequeNo;
            if (expense.isCash == 1)
            {
                data.Cash = true;
            }
            else
            {
                data.Cheque = true;
            }
            #endregion


            bool isSaved = ExpenseManager.SaveExpense(data);
            if (isSaved)
            {
                ViewBag.Message = "Expense Saved";
            }


            ViewBag.BankList = BankManager.LoadBank();
            return(View());
        }
Example #14
0
        public IActionResult AddExpense(int id)
        {
            ExpenseViewModel obj;

            if (id > 0)
            {
                Expense objuser = _context.Expenses.Where(m => m.ExpenseId == id).SingleOrDefault();
                if (objuser != null)
                {
                    obj = new ExpenseViewModel {
                        ExpenseId = objuser.ExpenseId, UserId = objuser.UserId, Description = objuser.Description
                    };
                    obj.ListUsers = _context.Users.Select(o => new SelectListItem {
                        Value = o.UserId.ToString(), Text = o.UserName
                    }).ToList();

                    return(View(obj));
                }
            }
            obj           = new ExpenseViewModel();
            obj.ListUsers = _context.Users.Select(o => new SelectListItem {
                Value = o.UserId.ToString(), Text = o.UserName
            }).ToList();
            return(View(obj));
        }
Example #15
0
        public IActionResult EditExpense([FromBody] ExpenseViewModel viewModel)
        {
            var validation = ValidateData(viewModel);

            if (!string.IsNullOrWhiteSpace(validation))
            {
                return(BadRequest(validation));
            }

            var expense = FetchExpense(viewModel.Id);

            if (expense == null)
            {
                TempData["Error"] = "Something went wrong.";

                return(View("ExpenseForm", viewModel));
            }

            TempData["Success"] = "Sėkmingai atnaujinta išlaida!";

            UpdateExpense(expense, viewModel);

            var expenses = SelectUsersExpenses();

            return(View("ExpenseList", new ExpenseListViewModel {
                Expenses = expenses
            }));
        }
Example #16
0
        public async Task <IActionResult> Add([FromBody] ExpenseViewModel expenseViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId = _userManager.GetUserId(User);

            if (userId == null)
            {
                return(StatusCode(401));
            }

            Expense newExpense = new Expense()
            {
                Sum        = expenseViewModel.Sum,
                Note       = expenseViewModel.Note,
                CategoryId = expenseViewModel.CategoryId,
                Date       = expenseViewModel.Date,
                UserId     = userId
            };

            if (await _repository.AddAsync(newExpense))
            {
                return(StatusCode(201));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Example #17
0
        public IHttpActionResult GetExpenseById(int ExpenseId)
        {
            try
            {
                ExpenseViewModel _ExpenseModel = db.EXPENSEs.Where(C => C.Id == ExpenseId).Select(Ex => new ExpenseViewModel
                {
                    Id          = Ex.Id,
                    REFERENCEno = Ex.REFERENCEno,
                    ACCOUNT_ID  = Ex.ACCOUNT_ID,
                    VENDOR_ID   = Ex.VENDOR_ID,
                    notes       = Ex.notes,
                    Vat21       = Ex.Vat21,
                    Vat6        = Ex.Vat6,
                    SUBTOTAL    = Ex.SUBTOTAL,
                    VAT_AMOUNT  = Ex.VAT_AMOUNT,
                    GRAND_TOTAL = Ex.GRAND_TOTAL,
                    user_id     = Ex.user_id,
                    comapny_id  = Ex.comapny_id,
                    AddedDate   = Ex.AddedDate,
                }).FirstOrDefault();

                return(Ok(_ExpenseModel));
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #18
0
        public void NewExpense()
        {
            var person1 = new Person { ChangeSetN = 1, DisplayName = "Bobby", PersonId = 1, RowId = Guid.NewGuid() };
            var person2 = new Person { ChangeSetN = 1, DisplayName = "Sophie", PersonId = 2, RowId = Guid.NewGuid() };
            var person3 = new Person { ChangeSetN = 1, DisplayName = "Glenn", PersonId = 3, RowId = Guid.NewGuid() };

            var viewModel = new ExpenseViewModel
                {
                    Sender = person1,
                    RecordDate = new DateTime(2010, 1, 3, 19, 25, 0),
                    Amount = 150,
                    DisplayName = "Expense Uno"
                };

            viewModel.Receivers.Add(person2);
            viewModel.Receivers.Add(person3);

            viewModel.SaveToModel();

            var model = viewModel.Model;

            Assert.IsNotNull(model);
            Assert.AreEqual(person1, model.Sender);
            Assert.AreEqual(2, model.Receivers.Count);
            Assert.IsTrue(model.Receivers.Contains(person2));
            Assert.IsTrue(model.Receivers.Contains(person3));
            Assert.AreEqual(150, model.Amount);
            Assert.AreEqual("Expense Uno", model.DisplayName);
            Assert.AreEqual(new DateTime(2010, 1, 3, 19, 25, 0), model.RecordDate);
            Assert.AreEqual(default(int), model.ChangeSetN);
            Assert.AreNotEqual(default(Guid), model.RowId);
            Assert.AreEqual(default(int), model.ExpenseId);
        }
Example #19
0
        private ExpenseDTO Create(ExpenseViewModel viewModel)
        {
            try
            {
                log.Debug(ExpenseViewModel.FormatExpenseViewModel(viewModel));

                ExpenseDTO expense = new ExpenseDTO();

                // copy values
                viewModel.UpdateDTO(expense, null); //RequestContext.Principal.Identity.GetUserId());

                // audit
                expense.CreateBy = null; //RequestContext.Principal.Identity.GetUserId();
                expense.CreateOn = DateTime.UtcNow;

                // add
                log.Debug("_expenseService.AddExpense - " + ExpenseDTO.FormatExpenseDTO(expense));

                int id = _expenseService.AddExpense(expense);

                expense.ExpenseId = id;

                log.Debug("result: 'success', id: " + id);

                return(expense);
            }
            catch (Exception e)
            {
                // error
                log.Error(e.ToString());

                throw;
            }
        }
        public void SetUp()
        {
            ServiceContainer.Register <ISynchronizeInvoke> (() => new Mocks.MockSynchronizeInvoke());
            ServiceContainer.Register <IAssignmentService> (() => new Mocks.MockAssignmentService());

            viewModel = new ExpenseViewModel();
        }
        public ActionResult Index(string sort, DateTime?dateFrom, DateTime?dateTo, int?categoryId)
        {
            if (dateFrom != null && dateTo != null)
            {
                ViewBag.DateFrom = dateFrom;
                ViewBag.DateTo   = dateTo;
            }
            ViewBag.Sort = "desc";
            ViewBag.Sort = !String.IsNullOrEmpty(sort) && sort == "asc" ? "desc" : "asc";
            ViewBag.ExpenseCategories = ExpenseRepository.Categories;

            IEnumerable <Expenses>  expenses         = expenseRepository.GetAllExpensesByUser(User.Identity.GetUserId(), dateFrom, dateTo, categoryId, sort);
            List <ExpenseViewModel> expenseViewModel = new List <ExpenseViewModel>();

            foreach (var item in expenses)
            {
                var viewModelItem = new ExpenseViewModel
                {
                    Id       = item.Id,
                    Category = expenseRepository.GetCategoryNameById(item.CategoryId),
                    Date     = item.Date,
                    Name     = item.Name,
                    Value    = item.Value
                };

                expenseViewModel.Add(viewModelItem);
            }
            return(View(expenseViewModel));
        }
Example #22
0
 public ActionResult AddMyExpense(ExpenseViewModel expenseViewModel)
 {
     if (ModelState.IsValid)
     {
         ExpenseMembers expenseMembers = new ExpenseMembers
         {
             Description     = expenseViewModel.Description,
             BudgetCategory  = expenseViewModel.SelectedBudget,
             SelectedGroupId = expenseViewModel.SelectedGroupId.ToList(),
             SpentAmount     = expenseViewModel.SpentAmount.Value,
             SpentBy         = expenseViewModel.SpentBy,
             SpentOn         = expenseViewModel.FormattedSpentDate,
             IncludedUsers   = expenseViewModel.IncludedUsers != null?expenseViewModel.IncludedUsers.ToList() : new List <string>(),
                                   ExcludedUsers = expenseViewModel.ExcludedUsers != null?expenseViewModel.ExcludedUsers.ToList() : new List <string>(),
                                                       CreatedBy = SessionUserId
         };
         expenseRepository.AddExpense(expenseMembers);
         return(RedirectToAction("AddMyExpense"));
     }
     else
     {
         DataSet expenseDetailsDataSet = expenseRepository.GetExpenseLookUp();
         expenseViewModel.Users            = expenseDetailsDataSet.Tables[0].LoadLookUps <string, int>();
         expenseViewModel.UserGroups       = expenseDetailsDataSet.Tables[1].LoadLookUps <string, int>();
         expenseViewModel.BudgetCategories = expenseDetailsDataSet.Tables[2].LoadLookUps <string, int>();
         expenseViewModel.SpentByUsers     = expenseDetailsDataSet.Tables[0].LoadLookUps <string, string>(SessionUserId);
         ModelState.AddModelError("", "Error saving your expense.");
         return(View("AddMyExpense", expenseViewModel));
     }
 }
        public CommandBarPage()
        {
            this.InitializeComponent();
            this.expenses = new ExpenseViewModel();

            //NavigationCacheMode = NavigationCacheMode.Required;
        }
Example #24
0
        public async Task <IActionResult> Create(
            [Bind("BuildingId,PropertyId,Expense")]
            ExpenseViewModel expenseModel)
        {
            if (ModelState.IsValid)
            {
                await expensesService.AddAsync(
                    new PropertyExpense()
                {
                    Building = new Building()
                    {
                        Id = expenseModel.BuildingId
                    },
                    Expense = new Expense()
                    {
                        Name = expenseModel.Expense, CreationDate = DateTime.Now
                    },
                    Property = new Property()
                    {
                        Id = expenseModel.PropertyId
                    },
                });

                return(RedirectToAction("Index"));
            }

            var allBuildings = buildingService.GetAllBuildings();

            ViewBag.AllBuildings = allBuildings.Select(
                b => new IdNameViewModel()
            {
                Id = b.Id, Name = $"{b.City} {b.Street} {b.Number}"
            });
            return(View(expenseModel));
        }
Example #25
0
        public ActionResult Expense(ExpenseViewModel model)
        {
            string result = "no";
            //Guid instanceGuid = WorkFlowHelper.Run(new Expense(), new Dictionary<string, object>()
            //{
            //    {"R2",model.Reason},
            //    {"M2",model.Money}
            //});
            WFInstance instance = new WFInstance()
            {
                InstanceTitle = "报销--" + model.ExpenseTitle,
                Details       = string.Format("事由:{0},金额:{1}元。", model.Reason, model.Money),
                InstanceGuid  = "",
                InstanceState = (short)InstanceState.Approving,
                Remark        = model.Remark,
                SubBy         = UserLogin.UserId,
                SubTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            };

            instance.WFStep.Add(new WFStep()
            {
                NextId  = model.NextId,
                SubBy   = UserLogin.UserId,
                SubTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            });
            if (WFInstanceBll.Add(instance))
            {
                result = "ok";
            }
            return(Content(result));
        }
        public CommonResponseViewModel UpdateExpense(ExpenseViewModel expenseVM)
        {
            var responseVM = new CommonResponseViewModel();

            try
            {
                bool isDuplicate = CheckIsDuplicate(expenseVM);
                if (isDuplicate)
                {
                    responseVM.message = "Expense Name already exists";
                    return(responseVM);
                }

                using (_dbContext = new AccountdbContext())
                {
                    var expenseDBModel = _dbContext.Expenses.Where(e => e.ExpenseId.Equals(expenseVM.id)).FirstOrDefault();
                    if (expenseDBModel != null)
                    {
                        ConstructExpenseDBModel(expenseVM, ref expenseDBModel, true);
                        _dbContext.Update(expenseDBModel);
                        _dbContext.SaveChanges();

                        responseVM.isSuccess = true;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(responseVM);
        }
Example #27
0
        public async Task <IActionResult> Update([FromBody] ExpenseViewModel expenseViewModel, int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (await _repository.GetByIdAsync(id) == null)
            {
                return(NotFound());
            }

            Expense newExpense = new Expense()
            {
                Id         = id,
                Sum        = expenseViewModel.Sum,
                Note       = expenseViewModel.Note,
                CategoryId = expenseViewModel.CategoryId,
                Date       = expenseViewModel.Date,
                //TODO изменить userId
                UserId = "userid123123"
            };

            if (await _repository.UpdateAsync(newExpense))
            {
                return(Ok());
            }
            else
            {
                return(StatusCode(500));
            }
        }
        public CommonResponseViewModel AddExpense(ExpenseViewModel expenseVM)
        {
            var responseVM = new CommonResponseViewModel();

            try
            {
                var expenseDBModel = new EfDbContext.Expenses();
                ConstructExpenseDBModel(expenseVM, ref expenseDBModel);

                bool isDuplicate = CheckIsDuplicate(expenseVM);
                if (isDuplicate)
                {
                    responseVM.message = "Expense Name already exists";
                    return(responseVM);
                }


                using (_dbContext = new AccountdbContext())
                {
                    _dbContext.Expenses.Add(expenseDBModel);
                    _dbContext.SaveChanges();

                    responseVM.isSuccess = true;
                    responseVM.recordId  = expenseDBModel.ExpenseId;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(responseVM);
        }
        public AddExpenseFlyoutPanel()
        {
            this.InitializeComponent();

            DataContext          =
                expenseViewModel = ServiceContainer.Resolve <ExpenseViewModel> ();
        }
        public void ExpenseService_ShouldCreateExpenseOnce_WhenCraetePostIsCalled()
        {
            // Arrange
            var expenseController = new ExpenseController(expenseServiceMock.Object, mappingServiceMock.Object, householdServiceMock.Object, webHelperMock.Object);
            var model             = new ExpenseViewModel()
            {
                Name         = "_",
                AssignedUser = "******",
                Category     = new Guid().ToString(),
                ExpectedCost = 1M,
                Comment      = "_"
            };

            // Act
            expenseController.Create(model);

            // Assert
            this.expenseServiceMock.Verify(x => x.CreateExpense(
                                               It.IsAny <string>(),
                                               It.IsAny <string>(),
                                               It.IsAny <Guid>(),
                                               It.IsAny <Guid>(),
                                               It.IsAny <decimal>(),
                                               It.IsAny <DateTime>(),
                                               It.IsAny <string>(),
                                               It.IsAny <string>()),
                                           Times.Once);
        }
Example #31
0
        public IActionResult AddPost(ExpenseViewModel expenseViewModel)
        {
            var expensesList = _expense.GetExpenses();

            ViewBag.expenses      = expensesList;
            ViewBag.AccountTreeId = new SelectList(_Acctree.GetAccountTrees(), "Id", "DescriptionAr");
            if (expenseViewModel.AccountTreeId == null)
            {
                ModelState.AddModelError("", "الرجاء تحدد رقم الحساب في الشجرة");
            }
            if (expenseViewModel.Id == 0)
            {
                ModelState.Remove("Id");
                ModelState.Remove("AccountTreeId");
                if (ModelState.IsValid)
                {
                    var expense = _mapper.Map <Expense>(expenseViewModel);
                    _expense.AddExpense(expense);
                    _toastNotification.AddSuccessToastMessage("تم أضافةالمصروف بنجاح");
                    return(RedirectToAction(nameof(Index)));
                }
                return(View(nameof(Index), expenseViewModel));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    var expensedetail = _mapper.Map <Expense>(expenseViewModel);
                    _expense.UpdateExpense(expenseViewModel.Id, expensedetail);
                    _toastNotification.AddSuccessToastMessage("تم تعديل البنك بنجاح");
                    return(RedirectToAction(nameof(Index)));
                }
                return(View(nameof(Index), expenseViewModel));
            }
        }
Example #32
0
        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            var key = int.Parse(NavigationContext.QueryString["id"]);
            this.ViewModel = new ExpenseViewModel
                {
                    Model = (Expense)Repository.Instance[key],
                    KnownPeople = Repository.Instance.All.Select(x => x.Value).OfType<Person>().ToList()
                };
            this.ViewModel.LoadFromModel();
        }
Example #33
0
        public void EditExpense()
        {
            var person1 = new Person { ChangeSetN = 1, DisplayName = "Bobby", PersonId = 1, RowId = Guid.NewGuid() };
            var person2 = new Person { ChangeSetN = 1, DisplayName = "Sophie", PersonId = 2, RowId = Guid.NewGuid() };
            var person3 = new Person { ChangeSetN = 1, DisplayName = "Glenn", PersonId = 3, RowId = Guid.NewGuid() };

            var trip = new Trip
                {
                    ChangeSetN = 1,
                    DisplayName = "Paris 2011",
                    RowId = Guid.NewGuid(),
                    TripId = 1
                };

            var expense = new Expense
                {
                    Amount = 100,
                    ChangeSetN = 1,
                    DisplayName = "Beers",
                    ExpenseId = 1,
                    Sender = person1,
                    Receivers = new List<Person> { person1, person2 },
                    RecordDate = new DateTime(2011, 01, 02, 15, 30, 00),
                    RowId = Guid.NewGuid(),
                    Trip = trip
                };

            var oldExpenseRowId = expense.RowId;

            var viewModel = new ExpenseViewModel { Model = expense };

            viewModel.LoadFromModel();

            // Switch the payer from person1 to person3 (and also receiver)
            viewModel.Sender = person3;
            viewModel.Receivers.Remove(person1);
            viewModel.Receivers.Add(person3);

            viewModel.SaveToModel();

            Assert.AreEqual(100, expense.Amount);
            Assert.AreEqual(1, expense.ExpenseId);
            Assert.AreEqual(expense.Sender, person3);
            Assert.AreEqual(2, expense.Receivers.Count);
            Assert.IsTrue(expense.Receivers.Contains(person2));
            Assert.IsTrue(expense.Receivers.Contains(person3));
            Assert.AreEqual(new DateTime(2011, 01, 02, 15, 30, 00), expense.RecordDate);
            Assert.AreNotEqual(oldExpenseRowId, expense.RowId);
            Assert.AreEqual(expense.Trip, trip);
        }