Ejemplo n.º 1
0
        public async Task <IActionResult> PutSecondaryCategory(int id, SecondaryCategory secondaryCategory)
        {
            if (id != secondaryCategory.Id)
            {
                return(BadRequest());
            }

            _context.Entry(secondaryCategory).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SecondaryCategoryExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(new JsonResult(new Result <SecondaryCategory>()
            {
                Data = secondaryCategory,
                ErrorCode = CommonConst.ERR_CODE_SUCCESS,
                ErrorMessage = ""
            }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("Id,Code,Name,CreatedBy,CreatedOn,ModifiedBy,ModifiedOn")] Currency currency)
        {
            if (ModelState.IsValid)
            {
                _context.Add(currency);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(currency));
        }
        public async Task <IActionResult> Create([Bind("Id,Code,Name,TypeId,CreatedBy,CreatedOn,ModifiedBy,ModifiedOn")] AccountCategory accountCategory)
        {
            if (ModelState.IsValid)
            {
                _context.Add(accountCategory);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TypeId"] = new SelectList(_context.AccountTypes, "Id", "Code", accountCategory.TypeId);
            return(View(accountCategory));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Create([Bind("Code,Name,Active,Checking,BankName,BankAddress,BankAccountNumber,BankAccountHolder,CategoryId,ParentId")] Account account)
        {
            if (ModelState.IsValid)
            {
                _context.Add(account);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoryId"] = new SelectList(_context.AccountCategories, "Id", "Code", account.CategoryId);
            ViewData["ParentId"]   = new SelectList(_context.Accounts, "Id", "Code", account.ParentId);
            return(View(account));
        }
Ejemplo n.º 5
0
        public virtual async Task <int> UpdateAsync(T t, object key)
        {
            T m = await _context.Set <T>().FindAsync(key);

            if (m != null)
            {
                _context.Entry(m).CurrentValues.SetValues(t);
                var result = await _context.SaveChangesAsync();

                return(result);
            }
            return(-1);
        }
Ejemplo n.º 6
0
        public async Task <Account> GetAccountAsync()
        {
            var account = await _context.Accounts.FirstOrDefaultAsync();

            if (account is null)
            {
                account = new Account();
                await _context.AddAsync(account);

                await _context.SaveChangesAsync();
            }

            return(account);
        }
        public async Task <Transaction> CreateTransactionAsync(TransactionBody transactionBody)
        {
            var account = await _accountService.GetAccountAsync();

            var transaction = _mapper.Map <Transaction>(transactionBody);

            transaction.Account   = account;
            transaction.AccountId = account.Id;
            account.Transactions.Add(transaction);

            switch (transaction.Type)
            {
            case TransactionType.Credit:
                account.Balance += transaction.Amount;

                break;

            case TransactionType.Debit:
                if (transaction.Amount > account.Balance)
                {
                    throw new InvalidAccountBalanceException("Not enough money left on account.");
                }

                account.Balance -= transaction.Amount;

                break;

            default:
                throw new InvalidEnumArgumentException(
                          nameof(transactionBody), (int)transaction.Type, typeof(TransactionType)
                          );
            }

            _context.Accounts.Update(account);
            // Don't know why but EffectiveDate doesn't automatically generated
            transaction.EffectiveDate = DateTime.Now;
            await _context.Transactions.AddAsync(transaction);

            await _context.SaveChangesAsync();

            return(transaction);
        }
Ejemplo n.º 8
0
 public async Task <bool> SaveAsync()
 {
     return((await _context.SaveChangesAsync()) >= 0);
 }