Exemple #1
0
        private async Task AddTransactionAsync(TransactionDTO transaction, BatchDTO batch)
        {
            var prefix = "[AddTransactionAsync]";

            try
            {
                var category = await _categoryService.GetByNameAsync(transaction.Category.Name);

                if (category == null)
                {
                    batch.Failed += 1;
                    _logger.LogWarning($"{prefix} Unable to find category with name {transaction.Category.Name}");
                }
                else
                {
                    transaction.BatchID  = batch.ID;
                    transaction.Category = category;
                    transaction          = await _transactionService.AddAsync(transaction);

                    _logger.LogInformation($"{prefix} Successfully added transaction with id {transaction.ID} to batch");
                    batch.Added += 1;
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"{prefix} {ex.GetType().Name}  exception while adding transaction to batch");
                _logger.LogError(ex.StackTrace);
                batch.Failed += 1;
            }
        }
        public async Task <ActionResult> Post(TransactionDTO transaction)
        {
            TransactionModel transactionModel = _mapper.Map <TransactionModel>(transaction);

            transactionModel.Status = TransactionStatus.Pending;
            await _transactionService.AddAsync(transactionModel);

            return(Ok());
        }
Exemple #3
0
        public async Task <IActionResult> AddTransaction([FromBody] TransactionDTO transaction)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest() as IActionResult);
            }
            var info = await service.AddAsync(transaction);

            return(info ? Ok() : StatusCode(400));
        }
        public async Task AddAsync_InvalidWalletGuid_ReturnsSuccessFalse()
        {
            var fakeTransaction = new WalletTransaction()
            {
                Guid = Guid.NewGuid(), Amount = 1, TransactionType = TransactionType.Deposit, WalletGuid = Guid.NewGuid()
            };

            _walletServiceMock.Setup(s => s.GetByGuidAsync(fakeTransaction.WalletGuid)).Returns(Task.FromResult <Wallet>(null));

            var result = await transactionService.AddAsync(fakeTransaction);

            using (new AssertionScope())
            {
                result.Sucess.Should().BeFalse();
                result.Message.Should().Be("Transaction for invalid Wallet");

                _transactionRepositoryMock.Verify(r => r.AddAsync(It.IsAny <WalletTransaction>()), Times.Never);
                _walletServiceMock.Verify(s => s.UpdateAsync(It.IsAny <Wallet>()), Times.Never);
            }
        }
        public async Task <IActionResult> Add([FromBody] AddTransactionRequest request, [FromRoute] int accountId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var response = await _transactionService.AddAsync(request, accountId);

            if (!response.IsValid)
            {
                return(BadRequest(response.Message));
            }
            return(Ok(response));
        }
Exemple #6
0
        public async Task <IActionResult> PostAsync([FromBody] PostTransaction request)
        {
            var prefix = "[PostAsync]";

            _logger.LogInformation($"{prefix} Executing action");

            if (!ModelState.IsValid)
            {
                _logger.LogWarning($"{prefix} Invalid model");
                return(BadRequest(ModelState));
            }

            var entity   = _mapper.Map <PostTransaction, TransactionDTO>(request);
            var response = await _service.AddAsync(entity);

            _logger.LogInformation($"{prefix} Added transaction with id {response.ID}");
            return(Created($"api/transactions/{response.ID}", response));
        }
Exemple #7
0
        public async Task <IActionResult> PostAsync([FromBody] WalletTransaction walletTransaction)
        {
            try
            {
                var saveResponse = await _transactionService.AddAsync(walletTransaction);

                if (saveResponse.Sucess)
                {
                    return(Ok(saveResponse));
                }
                else
                {
                    return(BadRequest(saveResponse));
                }
            }
            catch (Exception)
            {
                return(BadRequest("Rejected"));
            }
        }
Exemple #8
0
        public async Task <IActionResult> PostTransaction([FromBody] Transaction transaction)
        {
            var res = await _transactionService.AddAsync(transaction);

            return(Ok(res));
        }
Exemple #9
0
        public async Task <IActionResult> UploadFileAsync([FromForm] UploadFileRequestModel model)
        {
            await _transactionService.AddAsync(model.File);

            return(Ok());
        }