public async Task <ActionResult> RegisterAdmin(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, UserType = model.UserType.ToString() }; var result = await UserManager.CreateAsync(user, model.Password); Session["type"] = user.UserType; Session["token"] = user.Id; var db = new BloodDonationEntities2(); var users = db.AspNetUsers; string id = ""; foreach (AspNetUser u in users) { if (u.Email == model.Email) { id = u.Id; } } if (model.UserType == UserTypes.DONOR) { var personalDetails = new DonorPersonalDetail { DonorId = id, email = model.Email }; db.DonorPersonalDetails.Add(personalDetails); db.SaveChanges(); } if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Account")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> Create([Bind(Include = "UserType,Email,PasswordHash,UserName")] ApplicationUser applicationUser) { if (ModelState.IsValid) { string id = Guid.NewGuid().ToString(); applicationUser.Id = id; applicationUser.PasswordHash = new PasswordHasher().HashPassword(applicationUser.PasswordHash); var result = await UserManager.CreateAsync(applicationUser, applicationUser.PasswordHash); var BDdb = new BloodDonationEntities2(); var users = BDdb.AspNetUsers; foreach (AspNetUser u in users) { if (u.Email == applicationUser.Email) { id = u.Id; applicationUser.Id = u.Id; } } if (applicationUser.UserType == UserTypes.DOCTOR.ToString()) { var personalDetails = new DonorPersonalDetail { DonorId = id, email = applicationUser.Email }; BDdb.DonorPersonalDetails.Add(personalDetails); db.SaveChanges(); } if (result.Succeeded) { return(RedirectToAction("Index")); } AddErrors(result); } return(View(applicationUser)); }