public void GetBrokenRulesValidInputTest()
        {
            var user = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = "test",
                Address   = new Domain.Address.Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var spec   = new UserNameRequired();
            var broken = spec.GetBrokenRules(user);

            Assert.IsTrue(!broken.Any());
        }
        public void GetBrokenRulesMissingLastNameTest()
        {
            var address = new Domain.User.User {
                Id        = Guid.NewGuid(),
                FirstName = "test",
                LastName  = null,
                Address   = new Domain.Address.Address {
                    Country     = "UK",
                    City        = "London",
                    Street      = "Baker street",
                    HouseNumber = "221B"
                }
            };

            var spec   = new UserNameRequired();
            var broken = spec.GetBrokenRules(address);

            Assert.IsTrue(broken.Any());
            Assert.AreEqual(1, broken.Count());
            Assert.AreEqual(UserBusinessRules.UserNameRequired.Description, broken.First().Description);
        }
    protected void btnCreateUser_Click(object sender, EventArgs e)
    {
        UserNameRequired.Validate();
        RegularExpressionValidator1.Validate();

        // create new user
        string username = tbUsername.Text;
        string password = Global.CalculateMD5Hash(DateTime.UtcNow.ToString()).Substring(26);

        Membership.CreateUser(username, password);

        // email = username
        MembershipUser newUser = Membership.GetUser(username);

        newUser.Email = username;
        Membership.UpdateUser(newUser);

        // Add default roles
        Roles.AddUserToRole(username, "order");
        Roles.AddUserToRole(username, "view_orders");
        Roles.AddUserToRole(username, "edit_profile");

        // fill default prfile
        ProfileCommon profile = UserProfile.GetProfile(username);

        profile.Category   = ddlCategory.SelectedValue;
        profile.Name       = tbName.Text;
        profile.Surname    = tbSurname.Text;
        profile.SearchSize = UInt16.Parse(ddlSearchSize.SelectedValue);
        profile.Language   = UInt16.Parse(ddlLanguages.SelectedValue);
        profile.Save();

        // send info email
        Global.SendAccountInfo(username, profile.Name + " " + profile.Surname, password);

        Response.Redirect("~/Administrator/");
    }