public async Task <Result <BaseExpenseDto> > CreateExpense(BaseModifyExpenseDto modifyExpenseDto, string userId)
        {
            if (!(modifyExpenseDto is ModifyExpenseDto expenseDto))
            {
                throw new ArgumentException();
            }

            var hasUserPermission = await _walletPermissionService.HasUserAccess(modifyExpenseDto.WalletId, userId);

            if (!hasUserPermission)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            var mapped = Mapper.Map <Expense>(expenseDto);

            mapped.ModifiedById = userId;
            mapped.CreatedById  = userId;
            await _expenseRepository.CreateExpense(mapped);

            if (mapped.Id == default)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            var addedExpense = await _expenseRepository.GetExpense(mapped.Id);

            var addedMapped = Mapper.Map <ExpenseDto>(addedExpense);

            return(Result <BaseExpenseDto> .Success(addedMapped));
        }
        public IActionResult Create(Expense expense)
        {
            if (ModelState.IsValid)
            {
                _expenseRepository.CreateExpense(expense);


                Accountancy accountancy = new Accountancy();
                _accountancyRepository.CreateOrEditExpense(accountancy);
            }


            return(RedirectToAction(nameof(Index)));
        }
Пример #3
0
        public IActionResult Pay(Expense expense, int Id)
        {
            var regular = _regularRepository.GetRegular(Id);


            if (regular.Status == false)
            {
                expense.ShoppingDate = expense.Payment.ToShortDateString();
                expense.Id           = 0;
                _expenseRepository.CreateExpense(expense);
                _regularRepository.ChangeStatus(regular);

                Accountancy accountancy = new Accountancy();
                _accountancyRepository.CreateOrEditExpense(accountancy);

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(RedirectToAction(nameof(Payed)));
            }
        }
 private async Task AddExpense(CyclicExpense expense)
 {
     await _expenseRepository.CreateExpense(_mapper.Map <Expense>(expense));
 }