public ActionResult Registration([Bind(Exclude = "ActivationCode, IsEmailVerified")] RegistrationView registrationView) { bool statusRegistration = false; string messageRegistration = string.Empty; if (ModelState.IsValid) { // Checks if Email already Exists var IsEmailExist = Membership.GetUserNameByEmail(registrationView.Email); if (!string.IsNullOrEmpty(IsEmailExist)) { ModelState.AddModelError("", "Sorry: Email already Exists"); return(View(registrationView)); } // Generate Activation Code registrationView.ActivationCode = Guid.NewGuid(); // Password Hashing registrationView.Password = Crypto.Hash(registrationView.Password); registrationView.ConfirmPassword = Crypto.Hash(registrationView.ConfirmPassword); registrationView.IsEmailVerfied = false; //Save User Data using (RecruiterContext dbContext = new RecruiterContext()) { var user = new User() { Username = registrationView.Username, FirstName = registrationView.FirstName, LastName = registrationView.LastName, Email = registrationView.Email, Password = registrationView.Password, CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, }; dbContext.Users.Add(user); dbContext.SaveChanges(); //Add user to Applicant Role var customRole = new CustomRole(); var currentUserId = dbContext.Users.Where(u => u.Email == user.Email).FirstOrDefault().Id; var applicantRole = new UserRole() { UserId = currentUserId, RoleId = (dbContext.Roles.Where(r => r.Name == "Applicant").FirstOrDefault()).Id, CreatedById = currentUserId, LastModifiedById = currentUserId, CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now }; customRole.AddUserToRole(applicantRole); var applicant = new Applicant() { //Username = applicantProfileViewModel.Username, ApplicantId = currentUserId, CreatedById = currentUserId, LastModifiedById = currentUserId, CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now }; dbContext.Applicants.Add(applicant); dbContext.SaveChanges(); } //Verification Email VerificationEmail(registrationView.Email, registrationView.ActivationCode.ToString()); messageRegistration = "Registration successfully done. Account activation link" + " has been sent to your email id " + registrationView.Email; statusRegistration = true; } else { messageRegistration = "Invalid Request!"; } ViewBag.Message = messageRegistration; ViewBag.Status = statusRegistration; return(View(registrationView)); }
public void Seed() { var username = "******"; var password = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create() .ComputeHash(Encoding.UTF8.GetBytes("password"))); var email = "*****@*****.**"; var firstname = "Ebunoluwa"; var lastname = "Abiona"; var membership = new CustomMembership(); var adminUser = membership.GetUser(email, false); if (adminUser == null) { adminUser = membership.CreateUser(username, password, email, firstname, lastname, true, null, out MembershipCreateStatus status); switch (status) { case MembershipCreateStatus.Success: break; case MembershipCreateStatus.InvalidUserName: break; case MembershipCreateStatus.InvalidPassword: break; case MembershipCreateStatus.InvalidQuestion: break; case MembershipCreateStatus.InvalidAnswer: break; case MembershipCreateStatus.InvalidEmail: break; case MembershipCreateStatus.DuplicateUserName: break; case MembershipCreateStatus.DuplicateEmail: break; case MembershipCreateStatus.UserRejected: break; case MembershipCreateStatus.InvalidProviderUserKey: break; case MembershipCreateStatus.DuplicateProviderUserKey: break; case MembershipCreateStatus.ProviderError: break; default: break; } } var roleProvider = new CustomRole(); if (roleProvider.GetAllRoles().Length <= 0) { var roles = new string[] { "Admin", "Applicant" }; var createdById = (adminUser as CustomMembershipUser).UserId; foreach (string roleName in roles) { var role = new Role { Name = roleName, CreatedById = createdById, CreatedDate = DateTime.Now }; roleProvider.CreateRole(role); } using (RecruiterContext db = new RecruiterContext()) { var userRole = new UserRole { RoleId = (db.Roles.Where(r => r.Name == "Admin").FirstOrDefault()).Id, UserId = createdById, CreatedById = createdById, LastModifiedById = createdById }; roleProvider.AddUserToRole(userRole); } } }