public async Task <ActionResult <Transaction> > Save([FromBody] PostTransactionDto postTransactionDto)
        {
            var userId      = _userService.GetLoggedUserId();
            var transaction = await _service.Save(userId, postTransactionDto);

            return(Ok(_mapper.Map <GetTransactionDto>(transaction)));
        }
        public async Task <ActionResult <PostTransactionDto> > PostPostTransaction(PostTransactionDto pt)
        {
            _context.PostTransactions.Add(new PostTransaction
            {
                accountNumber = pt.accountNumber,
                cardId        = pt.card.id,
                categoryCode  = pt.merchant.category.code,
                categoryKey   = pt.merchant.category.key,
                categoryName  = pt.merchant.category.name,
                centsAmount   = pt.centsAmount,
                countryAlpha3 = pt.merchant.country.alpha3,
                countryCode   = pt.merchant.country.code,
                countryName   = "South Africa",
                currencyCode  = pt.currencyCode,
                dateTime      = pt.dateTime,
                merchantCity  = pt.merchant.city,
                merchantName  = pt.merchant.name,
                reference     = pt.reference,
                type          = pt.type
            });
            await _context.SaveChangesAsync();

            return(Ok());
            //TODO
            //return CreatedAtAction("GetPostTransaction", new { id = pt.Id }, pt);
        }
        public async Task <Transaction> Save(Guid userId, PostTransactionDto postTransactionDto)
        {
            var transaction = _mapper.Map <Transaction>(postTransactionDto);

            transaction.Status = TransactionStatus.Pending;
            transaction.User   = await _userService.GetById(userId);

            await _unityOfWork.TransactionRepository.AddAsync(transaction);

            await _unityOfWork.CommitAsync();

            return(transaction);
        }