public async Task <ActionResult> RegisterReviewer(RegisterReviewerViewModel model, HttpPostedFileBase uploadImage) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { UserManager.AddToRole(user.Id, "Reviewer"); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); var reviewer = new ReviewerAccount { Id = user.Id, FirstName = model.FirstName, LastName = model.LastName, City = model.City, StateProv = model.StateProv, ZipCode = model.ZipCode, IPAddress = GetIp() }; db.ReviewerAccounts.Add(reviewer); db.SaveChanges(); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> ReviewerRegister(RegisterReviewerViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (model.Language1Id != 0) { if (ModelState.IsValid) { if (model.Language2Id == 0) { model.Language2Id = null; } if (model.Language3Id == 0) { model.Language3Id = null; } var cName = _context.Conference.First().Name; var user = new ApplicationUser { UserName = model.Email, Email = model.Email, ConferenceName = cName, Name = model.Name, Surname = model.Surname }; var result = await _userManager.CreateAsync(user, model.Password); var userType = new Reviewer { OrgName = model.OrgName, ScTitle = model.ScTitle, ApplicationUserId = user.Id, Language1Id = model.Language1Id, Language2Id = model.Language2Id, Language3Id = model.Language3Id }; _context.Add(userType); await _context.SaveChangesAsync(); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); return(RedirectToLocal(returnUrl)); } AddErrors(result); } } // If we got this far, something failed, redisplay form List <Language> languageList = new List <Language>(); languageList = (from language in _context.Language select language).ToList(); var nullLanguage = new Language(); languageList.Insert(0, nullLanguage); ViewBag.ListofLanguages = languageList; return(View(model)); }