public async Task <Token> Create(Customer customer)
        {
            try
            {
                var tokenString   = customer.CardNumber + DateTime.UtcNow.ToString("yyyyMMddHHmm");
                var tokenArrayInt = tokenString.Select(c => int.Parse(c.ToString())).ToArray();
                var rawToken      = ArrayHelpers.GetFromAbsoluteDiff(tokenArrayInt);
                rawToken = ArrayHelpers.RightRotate(rawToken, customer.Cvv);

                tokenString = "";
                foreach (var item in rawToken)
                {
                    tokenString += item;
                }

                Token token = new Token
                {
                    CustomerId = customer.Id,
                    Value      = tokenString
                };

                var newToken = await tokenRepository.Create(token);

                if (newToken != null)
                {
                    return(newToken);
                }

                return(null);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }