Beispiel #1
0
        public void GeneratePinsTest()
        {
            // arrange
            int nrOfPinsToGenerate = 1000;
            int nrOfDigits         = 4;

            // act
            IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits);
            var           pins   = pinGen.GeneratePins();

            // assert
            Assert.IsTrue(!pins.Any(p => p.Length != 4));

            foreach (int pin in pins.Select(s => int.Parse(s)))
            {
                int i = pin / 1000;
                int j = (pin - 1000 * i) / 100;
                int k = (pin - 1000 * i - 100 * j) / 10;
                int l = pin - 1000 * i - 100 * j - k * 10;

                Assert.IsTrue(i != j && i != k && i != l && j != k && j != l && k != l);
                Assert.IsTrue(i != j - 1 && j != k - 1 && k != l - 1);
                Assert.IsTrue((int)Math.Ceiling(Math.Log10(pin)) <= 4);
            }
        }
Beispiel #2
0
        public void InvalidRangeTest()
        {
            // arrange
            int nrOfPinsToGenerate = 1001;
            int nrOfDigits         = 4;

            // act
            IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits);
            // assert is handled by the ExpectedException
        }
Beispiel #3
0
        public async Task <IActionResult> AddOfficer(OfficerDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User user = await _userManager.FindByEmailAsync(model.UserName);

            if (user != null)
            {
                return(BadRequest(ModelState));
            }

            var now = DateTime.Now;

            user = new User()
            {
                SecurityStamp    = Guid.NewGuid().ToString(),
                UserName         = model.UserName,
                CreatedDate      = now,
                LastModifiedDate = now
            };
            Random rnd      = new Random();
            int    num      = rnd.Next(1, 9);
            string password = PinGenerator.RandomString(4) + "@" + num;
            var    result   = await _userManager.CreateAsync(user, password);

            await _userManager.AddToRoleAsync(user, "Medical Officer");

            if (result.Succeeded)
            {
                var medical = new MedicalOfficer()
                {
                    UserName   = model.UserName,
                    Firstname  = model.Firstname,
                    Lastname   = model.Lastname,
                    FacilityId = model.FacilityId,
                    Department = model.Department,
                    ContactNo  = model.ContactNo,
                    CreatedBy  = model.CreatedBy,
                    Created    = DateTime.Now
                };

                _db.Officers.Add(medical);
                if (await _db.SaveChangesAsync() > 0)
                {
                    //  SendSms(model.UserName, password, "Donor Trace", model.ContactNo);
                    return(Ok());
                }
            }


            return(BadRequest("Could not save officer"));
        }
Beispiel #4
0
        public async Task <Buyer> RegisterUser(string email)
        {
            using (var uow = _dalfactory.GetUnitOfWork())
            {
                var user = uow.Repository <Buyer>()
                           .FirstOrDefault(u => u.Email.Equals(email, StringComparison.OrdinalIgnoreCase));

                string          pin;
                var             client = new EmailService();
                IdentityMessage message;

                if (user == null)
                {
                    _logger.Info("User not found");
                    do
                    {
                        pin = PinGenerator.RandomString(4);
                    }while (uow.Repository <Buyer>().Exist(u => u.Pin.Equals(pin)));

                    user = new Buyer()
                    {
                        Balance   = 0,
                        Email     = email,
                        Pin       = pin,
                        IsDeleted = false
                    };

                    message = new IdentityMessage()
                    {
                        Body        = $"Hello. Your PIN is {pin}. Use this to shoping in {ConfigurationManager.AppSettings["CompanyName"]} SnackBar.",
                        Subject     = "New PIN",
                        Destination = email
                    };

                    user = uow.Repository <Buyer>().AddOrUpdate(user);
                    uow.Save();
                    _logger.Info($"User Created with PIN = {user.Pin}");
                }
                else
                {
                    pin     = user.Pin;
                    message = new IdentityMessage()
                    {
                        Body        = $"Hello. Your PIN is {pin}.",
                        Subject     = "Forgot PIN?",
                        Destination = email
                    };
                    _logger.Info("User Found");
                }

                await client.SendAsync(message).ConfigureAwait(false);

                return(user);
            }
        }
        public void PinShouldBeOf4Digits()
        {
            int  pin       = PinGenerator.NewFourDigitPin();
            bool is4Digits = pin >= 1000 && pin <= 9999;

            Debug.Log("Pin: " + pin);

            Assert.IsTrue(is4Digits);
            Assert.AreNotEqual(_lastPin, pin);

            _lastPin = pin;
        }
Beispiel #6
0
        /// <inheritdoc />


        /// <inheritdoc />
        public async Task <ResponseBase> CreateUser(string email, string pass, string displayName, string phone)
        {
            var request = new RegisterRequest();

            request.DisplayName = displayName;
            request.Password    = pass;
            request.Email       = email;
            request.Phone       = phone;
            request.DeviceId    = "DeviceMobile" + PinGenerator.GeneratePin();

            var responseData = new ResponseBase()
            {
                HasBeenSuccessful = false
            };
            var result = await this._apiWrapper.CreateUser(request);

            string content = await result.Content.ReadAsStringAsync();

            if (result.StatusCode == HttpStatusCode.OK)
            {
                try
                {
                    var deserializedContent = JsonConvert.DeserializeObject <ResponseBase>(content);
                    if (!deserializedContent.HasBeenSuccessful)
                    {
                        responseData.HasBeenSuccessful = false;
                        responseData.Error             = "Internal Server Error";
                        return(responseData);
                    }

                    responseData.HasBeenSuccessful = true;
                    responseData.Error             = null;

                    return(responseData);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.StackTrace);
                    responseData.HasBeenSuccessful = false;
                    responseData.Error             = "Deserialization Error";
                    return(responseData);
                }
            }
            else
            {
                responseData.HasBeenSuccessful = false;
                responseData.Error             = "Internal Error" + result.StatusCode.ToString();;
                return(responseData);
            }
        }
        public void test()
        {
            //Arrange
            var repo      = new PinGenRepoMock();
            var generator = new PinGenerator(repo);

            generator._proposedPin = 1234;

            //Act
            var result = generator.GenerateNewTeamPin(new Team());

            //Assert
            Assert.That(() => result != 1234);
        }
Beispiel #8
0
 // Use this for initialization
 void Start()
 {
     /*foreach (EventPin pin in eventPins)
      * {
      *  PlacePin(pin);
      * }*/
     pincollection = PinGenerator.Load(Path.Combine(Application.dataPath, "./XML/pins.xml"));
     for (int i = 0; i < pincollection.Pins.Length; i++)
     {
         var generated_pin = pinPrefab;
         var pin           = pincollection.Pins[i];
         //var tempPin = (GameObject)Instantiate(generated_pin, new Vector3 (float.Parse(pin.pos_x), float.Parse(pin.pos_y), float.Parse(pin.pos_z)), Quaternion.identity);
         //tempPin.transform.parent = gameObject.transform;
         eventPins[0].SetCoordinates(float.Parse(pin.pos_x), float.Parse(pin.pos_y));
         eventPins[0].GetComponent <EventPin>().title       = pin.title;
         eventPins[0].GetComponent <EventPin>().description = pin.desc;
         eventPins[0].GetComponent <EventPin>().date        = int.Parse(pin.year);
         PlacePin(eventPins[0]);
     }
 }
Beispiel #9
0
        public void GeneratePinTest()
        {
            // arrange
            int nrOfPinsToGenerate = 1000;
            int nrOfDigits         = 4;

            // act
            IPinGenerator pinGen = new PinGenerator(nrOfPinsToGenerate, nrOfDigits);

            // assert
            for (int p = 0; p < 99999; p++)
            {
                var pin = pinGen.GeneratePin();

                int i = pin / 1000;
                int j = (pin - 1000 * i) / 100;
                int k = (pin - 1000 * i - 100 * j) / 10;
                int l = pin - 1000 * i - 100 * j - k * 10;

                Assert.IsTrue(i != j && i != k && i != l && j != k && j != l && k != l);
                Assert.IsTrue(i != j - 1 && j != k - 1 && k != l - 1);
                Assert.IsTrue((int)Math.Ceiling(Math.Log10(pin)) <= 4);
            }
        }