public ActionResult Register(RegisteredUser newUser) { CaptchaHelper captchaHelper = new CaptchaHelper(); string captchaResponse = captchaHelper.CheckRecaptcha(); if (captchaResponse != "Valid") { ViewBag.ErrorResponse = "The captcha must be valid"; return View(); } var userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore) { UserLockoutEnabledByDefault = true, DefaultAccountLockoutTimeSpan = new TimeSpan(0, 10, 0), MaxFailedAccessAttemptsBeforeLockout = 3 }; var identityUser = new IdentityUser() { UserName = newUser.UserName, Email = newUser.Email }; IdentityResult result = manager.Create(identityUser, newUser.Password); if (result.Succeeded) { if (newUser.UserRole.Equals("Buyer") || newUser.UserRole.Equals("Farm")) { //Taking the username on the account successful creation and applying it to the //Farm database to create a Farm table with that username under the 'farmName' field. AccountRepo accountRepo = new AccountRepo(); accountRepo.InitializeUserAccount(newUser); } var authenticationManager = HttpContext.Request.GetOwinContext().Authentication; var userIdentity = manager.CreateIdentity(identityUser, DefaultAuthenticationTypes.ApplicationCookie); authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity); string testVariable = newUser.UserRole; AddUserToRole(newUser.UserName, newUser.UserRole); CreateTokenProvider(manager, EMAIL_CONFIRMATION); var code = manager.GenerateEmailConfirmationToken(identityUser.Id); var callbackUrl = Url.Action("ConfirmEmail", "Home", new { userId = identityUser.Id, code = code }, protocol: Request.Url.Scheme); string emailMessage = "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">Confirm Registration</a>"; string response = new MailHelper().EmailFromArvixe(new ViewModels.Message(newUser.Email, emailMessage)); ViewBag.ConfirmationResponse = response; TempData["ConfirmationResponse"] = "You have successfully registered for an account. Please verify your account by clicking on the link sent to you in your e-mail."; return RedirectToAction("Login"); } ViewBag.ErrorResponse = "There was an error with the input provided"; return View(); }
public ActionResult Register(RegisteredUser newUser) { var userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore) { UserLockoutEnabledByDefault = true, DefaultAccountLockoutTimeSpan = new TimeSpan(0, 10, 0), MaxFailedAccessAttemptsBeforeLockout = 3 }; var identityUser = new IdentityUser() { UserName = newUser.UserName, Email = newUser.Email }; IdentityResult result = manager.Create(identityUser, newUser.Password); if (result.Succeeded) { CreateTokenProvider(manager, EMAIL_CONFIRMATION); var code = manager.GenerateEmailConfirmationToken(identityUser.Id); var callbackUrl = Url.Action("ConfirmEmail", "Home", new { userId = identityUser.Id, code = code }, protocol: Request.Url.Scheme); string email = "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">Confirm Registration</a>"; ViewBag.FakeConfirmation = email; } return View(); }
public ActionResult Register(RegisteredUser newUser) { var userStore = new UserStore<IdentityUser>(); UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore) { UserLockoutEnabledByDefault = true, DefaultAccountLockoutTimeSpan = new TimeSpan(0, 10, 0), MaxFailedAccessAttemptsBeforeLockout = 3 }; var identityUser = new IdentityUser() { UserName = newUser.UserName, Email = newUser.Email }; IdentityResult result = manager.Create(identityUser, newUser.Password); if (result.Succeeded) { var authenticationManager = HttpContext.Request.GetOwinContext().Authentication; var userIdentity = manager.CreateIdentity(identityUser, DefaultAuthenticationTypes.ApplicationCookie); authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity); string testVariable = newUser.UserRole; AddUserToRole(newUser.UserName, newUser.UserRole); } return View(); }
public void InitializeUserAccount(RegisteredUser newUser) { FarmSaleDBEntities1 db = new FarmSaleDBEntities1(); Account account = new Account() { username = newUser.UserName, email = newUser.Email, accountType = newUser.UserRole }; db.Accounts.Add(account); Address address = new Address() { city = newUser.City, province = newUser.Province, streetName = newUser.StreetName, streetNum = newUser.StreetNum, zip = newUser.PostalCode }; db.Addresses.Add(address); Farm farm = new Farm(); if (newUser.UserRole.Equals("Farm")) { farm.farmName = newUser.FarmName; farm.farmProfile = newUser.FarmProfile; db.Farms.Add(farm); } db.SaveChanges(); Account newUserAccount = db.Accounts.Where(u => u.username == newUser.UserName).FirstOrDefault(); int accountID = newUserAccount.accountID; //querying new Address and Farm entities that we just added into sepearte tables. Address addressQuery = db.Addresses.Where(a => a.streetNum == newUser.StreetNum && a.streetName == newUser.StreetName && a.zip == newUser.PostalCode).FirstOrDefault(); Farm farmQuery = db.Farms.Where(f => f.farmName == newUser.FarmName && f.farmProfile == newUser.FarmProfile).FirstOrDefault(); //merging Address and Farm entities under the Account through the AccountDetails table AccountDetail newUserAccountDetail = new AccountDetail(); int addressID = addressQuery.addressID; if (farmQuery != null) { int farmID = farmQuery.farmID; newUserAccountDetail.farmID = farmID; } newUserAccountDetail.accountID = accountID; newUserAccountDetail.addressID = addressID; db.AccountDetails.Add(newUserAccountDetail); db.SaveChanges(); //farm.farmName = newUser.UserName = newUser.FarmName; //farm.farmProfile = newUser.UserName = newUser.FarmProfile; //address.AccountDetails.Add(newUserAccountDetail); //db.SaveChanges(); //account.AccountDetails.Add(newUserAccountDetails); //Address newUserAddress = new Address(); //Farm farm = new Farm(); //farm.farmName = " farm name " + newUser.UserName; //newUserAddress.city = "Vancouver"; //newUserAddress.AccountDetails.Add(newUserAccountDetails); //farm.AccountDetails.Add(newUserAccountDetails); db.SaveChanges(); //if ( newUser.UserRole.Equals("Farm")) //{ // Farm farm = new Farm(); // farm.farmName = newUser.UserName; // AccountDetail //} //if (account != null) //{ // account.email = email; // db.SaveChanges(); //} }