public IActionResult GenerateTopup(GenerateTopupCommand command)
        {
            if (int.Parse(command.Account.Substring(0, 2)) != (int)EW_Enumerations.EW_UserTypeEnum.Admin)
            {
                return(BadRequest());
            }

            bool isExist = _userService.ExistAccountNo(command.Account);

            if (!isExist)
            {
                return(BadRequest());
            }

            TopupResultDTO result = _transactionService.GenerateTopUp(command.Account, command.Amount);

            if (result == null)
            {
                return(BadRequest());
            }

            GenerateTopupViewModel viewModel = new GenerateTopupViewModel()
            {
                ReferenceNumber = result.ReferenceNumber,
                ExpireDate      = result.ExpireDate
            };

            return(Ok(viewModel));
        }
Esempio n. 2
0
        public TopupResultDTO GenerateTopUp(string account, decimal amount)
        {
            string referenceNumber = GenerateReferenceNumber(18);
            bool   isReference     = _transactionRepository.CheckReference(referenceNumber);

            // ??
            while (isReference)
            {
                referenceNumber = GenerateReferenceNumber(18);
                isReference     = _transactionRepository.CheckReference(referenceNumber);
                if (!isReference)
                {
                    break;
                }
            }
            UserEntity userEntity = _userRepository.GetUserByAccountNumber(account);

            if (userEntity == null)
            {
                return(null);
            }

            int            otherId       = userEntity.Id;
            bool           isCreateTopUP = _transactionRepository.CreateNewTopUp(referenceNumber, otherId, amount);
            var            topupData     = _transactionRepository.GetTransactionByReferenceNumber(referenceNumber);
            TopupResultDTO returnData    = new TopupResultDTO();

            returnData.ReferenceNumber = referenceNumber;
            returnData.ExpireDate      = topupData.CreateDateTime.AddMinutes(15);
            return(isCreateTopUP ? returnData : null);
        }