public PersonalDataStructure GeneratePersonalData(UserGenderEnum? gender = null)
        {
            int contactNumber = StaticRandom.Next();

            string name;
            string lastName = "Doe" + contactNumber;
            gender = gender ?? (UserGenderEnum)(contactNumber % 3);
            if (gender.Value == UserGenderEnum.Male)
            {
                name = "John";
            }
            else if (gender.Value == UserGenderEnum.Female)
            {
                name = "Jolene";
            }
            else
            {
                name = "Dog";
                gender = UserGenderEnum.Unknown;
            }

            var personalData = new PersonalDataStructure()
            {
                Gender = gender.Value,
                FirstName = name,
                LastName = lastName,
                Address = name + " street",
                City = name + " city",
                MobilePhone = contactNumber.ToString(),
                HomePhone = (contactNumber * 2).ToString(),
                ZIP = (contactNumber * 3).ToString(),
            };

            personalData.Email = personalData.FirstName + "." + personalData.LastName + "@" + StaticRandomCompanies.NextCompanyName() + ".com";

            return personalData;
        }
        public PersonalDataStructure GeneratePersonalData(UserGenderEnum? gender = null)
        {
            string contactDataUrl = "http://api.randomuser.me/0.4/";

            if (gender != null)
            {
                contactDataUrl = URLHelper.AddParameterToUrl(contactDataUrl, "gender", gender.Value == UserGenderEnum.Female ? "female" : "male");
            }

            string jsonResponse = new WebClient().DownloadString(contactDataUrl);

            dynamic response = JObject.Parse(jsonResponse);
            dynamic user = response.results[0].user;

            var capitalizer = new FirstLetterCapitalizer();

            var personalData = new PersonalDataStructure()
            {
                Gender = user.gender == "male" ? UserGenderEnum.Male : UserGenderEnum.Female,
                FirstName = capitalizer.CapitalizeFirstLetters((string)user.name.first),
                LastName = capitalizer.CapitalizeFirstLetters((string)user.name.last),
                Address = capitalizer.CapitalizeFirstLetters((string)user.location.street),
                City = capitalizer.CapitalizeFirstLetters((string)user.location.city),
                MobilePhone = user.cell,
                HomePhone = user.phone,
                ZIP = user.location.zip,
            };

            personalData.Email = personalData.FirstName + "." + personalData.LastName + "@" + StaticRandomCompanies.NextCompanyName() + ".com";

            return personalData;
        }
        public PersonalDataStructure GeneratePersonalData(UserGenderEnum? gender = null)
        {
            string contactDataUrl = "http://api.randomuser.me/0.4/";

            if (gender != null)
            {
                contactDataUrl = URLHelper.AddParameterToUrl(contactDataUrl, "gender", gender.Value == UserGenderEnum.Female ? "female" : "male");
            }

            var serializer = new JavaScriptSerializer();
            string jsonResponse = new WebClient().DownloadString(contactDataUrl);

            dynamic response = serializer.DeserializeObject(jsonResponse);
            dynamic user = response["results"][0]["user"];

            var capitalizer = new FirstLetterCapitalizer();

            var personalData = new PersonalDataStructure
            {
                Gender = user["gender"] == "male" ? UserGenderEnum.Male : UserGenderEnum.Female,
                FirstName = capitalizer.CapitalizeFirstLetters((string)user["name"]["first"]),
                LastName = capitalizer.CapitalizeFirstLetters((string)user["name"]["last"]),
                Address = capitalizer.CapitalizeFirstLetters((string)user["location"]["street"]),
                City = capitalizer.CapitalizeFirstLetters((string)user["location"]["city"]),
                MobilePhone = user["cell"],
                HomePhone = user["phone"],
                ZIP = user["location"]["zip"],
            };

            personalData.Email = personalData.FirstName + "." + personalData.LastName + "@" + StaticRandomCompanies.NextCompanyName() + ".com";

            return personalData;
        }