public ActionResult <string> Post([FromBody] string customerId)
        {
            var cardNumber = CreditCardFactory.RandomCardNumber(CardIssuer.MasterCard);

            //var card = CashCardDomain.CashCard.CreateCashCard()

            return(cardNumber);
        }
示例#2
0
        public static void GeneratePII(string filename, string type)
        {
            //Number of PII to generate
            int           gensize = 10000;
            List <string> piidata = new List <string>();

            switch (type)
            {
            case "creditcard":

                if (File.Exists(filename))
                {
                    for (int i = 0; i < gensize; i++)
                    {
                        piidata.Add((string)CreditCardFactory.RandomCardNumber(CardIssuer.Visa));
                    }
                    using (StreamWriter sw = File.AppendText(filename))
                    {
                        foreach (var card in piidata)
                        {
                            sw.WriteLine(card);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("File does not exist");
                }
                break;

            case "ssn":
                if (File.Exists(filename))
                {
                    Random generator = new Random();

                    for (int i = 0; i < gensize; i++)
                    {
                        piidata.Add(Regex.Replace(String.Format("{0:###-##-####}", generator.Next(0, 999999999).ToString("D9")), @"^(.{3})(.{2})(.{4})$", "$1-$2-$3"));
                    }
                    using (StreamWriter sw = File.AppendText(filename))
                    {
                        foreach (var card in piidata)
                        {
                            sw.WriteLine(card);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("File does not exist");
                }
                break;

            default:
                Console.WriteLine("Please specify type of PII to generate. Current supported types are creditcard and ssn");
                break;
            }
        }
            public void TestUnknownCardIssuerGeneration()
            {
                for (int i = 0; i < 10000; i++)
                {
                    var unkCard = CreditCardFactory.RandomCardNumber(CardIssuer.Unknown);

                    CreditCardDetector detector = new CreditCardDetector(unkCard);

                    detector.Brand.ShouldBe <CardIssuer>(CardIssuer.Unknown);
                }
            }
示例#4
0
        private static async void OptionScreen1(IEndpointInstance endpointInstance)
        {
            WriteChooseOption();
            Console.WriteLine("1.Request a virtual cash card");
            Console.WriteLine("2.Insert a virtual cash card");
            Console.WriteLine("Press Esc to exit");
            Console.WriteLine();
            while (true)
            {
                var auditInfo = new AuditInfo {
                    By = "login User", Created = DateTime.UtcNow
                };
                var key = Console.ReadKey();
                Console.WriteLine();
                switch (key.Key)
                {
                case ConsoleKey.Escape:
                    break;

                case ConsoleKey.D1:
                    _currentCardNumber.Number = String.Empty;
                    var message = new RequestCashCard(auditInfo, CreditCardFactory.RandomCardNumber(CardIssuer.MasterCard), "1");
                    Console.WriteLine($"card has been requested and will virtual be posted");
                    await endpointInstance.Send("CashCard.Service", message).ConfigureAwait(false);

                    Console.WriteLine($"waiting for card ...");
                    while (true)
                    {
                        if (_currentCardNumber.Number != message.CardNumber)
                        {
                            continue;
                        }
                        Console.WriteLine($"received cash card {message.CardNumber} and inserting ...");
                        break;
                    }
                    InsertCard(endpointInstance, _currentCardNumber.Number);
                    break;

                case ConsoleKey.D2:
                    //read Card
                    if (String.IsNullOrEmpty(_currentCardNumber.Number))
                    {
                        Console.WriteLine("Enter the card number");
                        _currentCardNumber.Number = Console.ReadLine();
                    }
                    InsertCard(endpointInstance, _currentCardNumber.Number);
                    break;

                default:
                    Console.WriteLine("Please select correct option");
                    break;
                }
            }
        }
示例#5
0
            public async Task <int> Handle(Command request, CancellationToken cancellationToken)
            {
                Domain.Models.CuentaBancaria bankAccount = new Domain.Models.CuentaBancaria()
                {
                    IdUser  = request.IdUser,
                    Pin     = request.Pin,
                    NCuenta = CreditCardFactory.RandomCardNumber(CardIssuer.Visa, 16)
                };
                bankAccount = await _repository.CreateAccountAsync(bankAccount);

                return(bankAccount.Id);
            }
 private void OnOrderSubmitted(object sender, EventArgs e)
 {
     new Action <string, OrderRequest>(SendRequest).BeginInvoke($"/orders/order", new OrderRequest()
     {
         Id       = Guid.NewGuid(),
         Product  = ((ProductDetail)cbProducts.SelectedItem).Id,
         Address  = "Unit 1, 100 John Street, Sydney",
         Quantity = rnd.Next(1, 9),
         Payment  = CreditCardFactory.RandomCardNumber((CardIssuer)Enum.Parse(typeof(CardIssuer), cbPayment.SelectedItem.ToString())),
         Zip      = GetZip(cbArea.SelectedItem.ToString()),
         Country  = "Australia"
     }, null, null);
 }
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard(CardIssuer cardIssuer)
            {
                // Arrange.

                // Act.
                var number = CreditCardFactory.RandomCardNumber(cardIssuer);

                // Assert.
                var detector = new CreditCardDetector(number);

                detector.Brand.ShouldBe(cardIssuer);
                detector.IsValid(cardIssuer).ShouldBe(true);
                detector.IsValid().ShouldBe(true);
            }
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_MaxLength(CardIssuer cardIssuer)
            {
                // Arrange.
                var maxLength = TestHelperUtilities.Lengths(cardIssuer).Last();

                // Act.
                var number = CreditCardFactory.RandomCardNumber(cardIssuer, maxLength);

                // Assert.
                var detector = new CreditCardDetector(number);

                number.Length.ShouldBe(maxLength);
                detector.Brand.ShouldBe(cardIssuer);
                detector.IsValid(cardIssuer).ShouldBe(true);
                detector.IsValid().ShouldBe(true);
            }
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_MinLength(CardIssuer cardIssuer)
            {
                // Arrange.
                var lengths = TestHelperUtilities.Lengths(cardIssuer);

                foreach (var len in lengths)
                {
                    // Act.
                    var number = CreditCardFactory.RandomCardNumber(cardIssuer, len);

                    // Assert.
                    var detector = new CreditCardDetector(number);
                    number.Length.ShouldBe(len);
                    detector.Brand.ShouldBe(cardIssuer);
                    detector.IsValid(cardIssuer).ShouldBe(true);
                    detector.IsValid().ShouldBe(true);
                }
            }
示例#10
0
      public static void GenCard()
      {
          Console.WriteLine("Do you want to Generate a Visa Credit Card Number? Y/N");
          var    answer = "n";
          string number = "";

          answer = Console.ReadLine();
          if (answer == "y" || answer == "Y")
          {
              number = CreditCardFactory.RandomCardNumber(CardIssuer.Visa);
              Console.WriteLine(number);
              Console.ReadLine();
          }
          else
          {
              Console.WriteLine("No selected, no Credit Card Number will be generated");
          }
          return;
      }
示例#11
0
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_Invalid(CardIssuer cardIssuer)
            {
                // Arrange.
                string    number = "";
                Exception e      = new Exception();

                // Act.
                try
                {
                    number = CreditCardFactory.RandomCardNumber(cardIssuer, 99);
                }
                catch (Exception ex)
                {
                    e = ex;
                }

                // Assert
                e.ShouldBeOfType <ArgumentException>();
                e.Message.ShouldBe("99 is not valid length for card issuer " + cardIssuer.ToString());
                number.Length.ShouldBe(0);
            }
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_Invalid(CardIssuer cardIssuer)
            {
                // Arrange.
                string    number = "";
                Exception e      = new Exception();
                int       length = 99;

                // Act.
                try
                {
                    number = CreditCardFactory.RandomCardNumber(cardIssuer, length);
                }
                catch (Exception ex)
                {
                    e = ex;
                }

                // Assert
                e.ShouldBeOfType <ArgumentException>();
                e.Message.ShouldBe($"The card number length [{length}] is not valid for the card issuer [{cardIssuer}].");
                number.Length.ShouldBe(0);
            }
            public void TestMultiThreadRandomCardNumberGeneration()
            {
                var tasks   = new List <Task>();
                var results = new ConcurrentDictionary <string, byte>();

                for (int i = 0; i < 20; i++)
                {
                    var task = new Task(() =>
                    {
                        for (int j = 0; j < 1000; j++)
                        {
                            var cardNumber = CreditCardFactory.RandomCardNumber(CardIssuer.MasterCard);

                            Assert.NotNull(cardNumber);
                            Assert.True(results.TryAdd(cardNumber, 0), $"Error: Factory generated a duplicated card number: [{cardNumber}]");
                        }
                    });

                    tasks.Add(task);
                }

                tasks.ForEach(t => t.Start());
                Task.WaitAll(tasks.ToArray());
            }
示例#14
0
 /// <summary>
 /// Provides a Valid VISA card number.
 /// </summary>
 /// <returns></returns>
 private string GetValidCardNumber()
 {
     return(CreditCardFactory.RandomCardNumber(CardIssuer.Visa));
 }
示例#15
0
 private string GenerateCreditCardNumber(string issuer)
 {
     return(CreditCardFactory.RandomCardNumber((CardIssuer)Enum.Parse(typeof(CardIssuer), issuer)));
 }
        //GET: /api/Payments/Get/RandomCardNumber
        public ActionResult <string> GetRandomVisaNumber()
        {
            string visaNumber = CreditCardFactory.RandomCardNumber(CardIssuer.Visa);

            return(Ok(new { visaNumber }));
        }