public async Task <IActionResult> RegistrationAsync([FromServices] ICaptchaGenratorBase captchaGenratorBase, [FromServices] ISequenceMaster sequenceMaster, [FromServices] IConsolidatorProfile consolidatorProfile, [FromServices] RoleManager <IdentityRole> RoleManager, [FromForm] mdlRegistration mdl) { if (mdl.CaptchaData == null) { ModelState.AddModelError(mdl.CaptchaData.CaptchaCode, "Invalid Captcha"); } else if (!captchaGenratorBase.verifyCaptch(mdl.CaptchaData.SaltId, mdl.CaptchaData.CaptchaCode)) { ModelState.AddModelError(mdl.CaptchaData.CaptchaCode, "Invalid Captcha"); } if (ModelState.IsValid) { using var transaction = _context.Database.BeginTransaction(); try { mdl.GenrateRegistration(sequenceMaster, consolidatorProfile, _context); ApplicationUser appuser = new ApplicationUser() { UserName = mdl.TcId, Email = mdl.EmailAddress, TcNid = mdl.TcNId, PhoneNumber = mdl.PhoneNo, UserType = enmUserType.Consolidator }; var result = await _userManager.CreateAsync(appuser, mdl.Password); if (result.Succeeded) { var role = await RoleManager.FindByNameAsync("TC"); if (role != null) { await _userManager.AddToRoleAsync(appuser, "TC"); } await _signInManager.SignInAsync(appuser, isPersistent : false); transaction.Commit(); return(RedirectToAction("Index", "Home")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } transaction.Rollback(); } catch (Exception ex) { transaction.Rollback(); ModelState.AddModelError("", ex.Message); } } mdl.CaptchaData.GenrateCaptcha(captchaGenratorBase); return(View(mdl)); }
public IActionResult Registration([FromServices] ICaptchaGenratorBase captchaGenratorBase) { mdlCaptcha mdC = new mdlCaptcha(); mdC.GenrateCaptcha(captchaGenratorBase); mdlRegistration mdl = new mdlRegistration() { CaptchaData = mdC }; return(View(mdl)); }