public async Task <IActionResult> Login(VendorSignInVM thisModel) { System.Threading.Thread.Sleep(2000); ViewBag.LoginMessage = ""; // ModelState.IsValid performs server side validation. // *ALWAYS* perform server side validation. if (ModelState.IsValid) { var result = await _signInManager.PasswordSignInAsync(thisModel.LoginVM.Email, thisModel.LoginVM.Password, thisModel.LoginVM.RememberMe, lockoutOnFailure : true); if (result.Succeeded) { return(RedirectToAction("Index", "AllDiaryAds")); } else if (result.IsLockedOut) { ViewBag.LoginMessage = "Login attempt locked out."; return(View("Index", thisModel)); } else if (result.IsNotAllowed) { ViewBag.LoginMessage = "Please confirm your email before logging in."; return(View("Index", thisModel)); } ViewBag.LoginMessage = "Invalid user name or password."; return(View("Index", thisModel)); } else { ViewBag.LoginMessage = "This entry is invalid."; } // return view with errors return(View("Index", thisModel)); }
public async Task <IActionResult> Create(VendorSignInVM thisModel) { UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); System.Threading.Thread.Sleep(2000); var user = new ApplicationUser { UserName = thisModel.RegisterVM.Email, Email = thisModel.RegisterVM.Email }; var vendorUser = new Vendor { Name = thisModel.Vendor.Name, Address = thisModel.Vendor.Address, City = thisModel.Vendor.City, Province = thisModel.Vendor.Province, Monthly = thisModel.Vendor.Monthly, Priority = thisModel.Vendor.Priority, Website = thisModel.Vendor.Website, PostalCode = thisModel.Vendor.PostalCode }; if (ModelState.IsValid) { var result = await _userManager.CreateAsync(user, thisModel.RegisterVM.Password); if (result.Succeeded) { var userID = user.Id; vendorUser.UserID = userID; _context.Add(vendorUser); await _context.SaveChangesAsync(); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Link("Default", new { Controller = "Login", Action = "ConfirmEmail", userId = user.Id, code = code }); await _emailSender.SendEmailAsync(thisModel.RegisterVM.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); // here we assign the new user the "Vendor" role await _userManager.AddToRoleAsync(user, "Vendor"); ViewBag.Email = thisModel.RegisterVM.Email; return(View("Create", thisModel)); } var errorList = new List <string>(); foreach (var errors in result.Errors) { errorList.Add(errors.Description); } ViewBag.ErrorMessage = errorList; // Reset the site key if there is an error. ViewData["SiteKey"] = _configuration["Authentication:Recaptcha:SiteKey"]; return(View("Index", thisModel)); } else { ViewData["SiteKey"] = _configuration["Authentication:Recaptcha:SiteKey"]; } return(View("Index", thisModel)); }