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)); }
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); }