Esempio n. 1
0
        public async Task <Atm> GetAtm(AtmVm number)
        {
            var atm = await _context.AtmDigits.Include(e => e.Accounts).ThenInclude(e => e.User).FirstOrDefaultAsync(r => r.AtmNumber == number.AtmNumber);

            if (atm == null)
            {
                return(null);
            }
            var atmvm     = int.Parse(number.ExpiryDate.Substring(3, 2));
            var atmexpiry = int.Parse(DateConverter.CoverterToMonthAndYear(atm.ExpiryDate).Substring(4, 2));

            if (atmvm < atmexpiry &&
                atm.AtmPin.Equals(number.AtmPin) && number.SecurityNumber.Equals(atm.SecurityNumber))
            {
                return(atm);
            }

            return(null);
        }
Esempio n. 2
0
        public Account_Test()
        {
            Accounts accounts = new Accounts
            {
                Id            = Guid.NewGuid(),
                AccountNumber = "0037686809",
                AccountType   = "savings",
                Balance       = 0.0,
                DateCreated   = DateTime.Now,
                IsActive      = true,
            }; var atm = new Atm();

            atm.AtmNumber         = "4751763236699647";
            atm.AtmPin            = "3310";
            atm.ExpiryDate        = DateTime.Now;
            atm.SecurityNumber    = "564";
            _mockAccount          = new Mock <IAccount>();
            _mockAtm              = new Mock <IAtm>();
            _atmVm                = new AtmVm();
            _atmVm.AtmNumber      = "4751763236699647";
            _atmVm.AtmPin         = "3310";
            _atmVm.ExpiryDate     = "12/22";
            _atmVm.SecurityNumber = "564";
            _mockAtm.Setup(atm => atm.GetAtm(_atmVm)).ReturnsAsync(GetAtm());
            _mockUser = new Mock <IUser>();
            _mockUser.Setup(user => user.GetUser("toby")).ReturnsAsync(GetUser());
            _mockAccountGen = new Mock <IAccountGenerator>();
            _mockAccountGen.Setup(r => r.Get()).Returns("0090933344");
            _mockAccountJwt      = new Mock <IJwtSecurity>();
            _newToken            = new Token();
            _newToken.token      = "738290hdjzksLKLCjchxkclzKJCxclz:KZJVnmx,ckl";
            _newToken.ExpiryDate = DateTime.Now;
            _mockAccountJwt.Setup(r => r.JwtVerification(GetUser()))
            .Returns(_newToken);
            _mockAccount.Setup(repo => repo.FindAccountById(Guid.NewGuid())).ReturnsAsync(accounts);

            validate = new ValidateAtmController(_mockUser.Object, _mockAccount.Object, _mockAtm.Object, _mockAccountGen.Object, _mockAccountJwt.Object);
        }
        public async Task <ActionResult> CardValidation(AtmVm atm)
        {
            var atmsValidate = AtmValidator.Validate(atm.AtmNumber);

            if (!atmsValidate)
            {
                return(BadRequest(new AtmDto {
                    Status = "failed", Token = "invalid"
                }));
            }

            var AtmDetails = await _atm.GetAtm(atm);

            if (AtmDetails == null)
            {
                return(BadRequest(new { AtmCard = "the atm pin you provide is invalid" }));
            }
            var user = await _accountContext.FindAccountById(AtmDetails.Accounts.Id);

            var token = _jwtSecurity.JwtVerification(user.User);

            return(Ok(token));
        }
        public async Task <ActionResult> GetUserDetail(AtmVm card)
        {
            var userid      = _userContext.GetCurrentUser();
            var currentUser = await _userContext.GetUserById(userid);

            if (currentUser == null)
            {
                return(NotFound());
            }

            var atm = await _atm.GetAtmByNumber(card.AtmNumber);

            if (atm == null)
            {
                return(BadRequest());
            }
            var returnedAtm = new AtmAndUserDto
            {
                AccountNumber = atm.Accounts.AccountNumber,
                FullName      = $"{currentUser.FirstName} {currentUser.LastName} "
            };

            return(Ok(returnedAtm));
        }