public ActionResult Register([Bind(Include = "Id,Email,Password,Name,Phone,IsAdmin")] ViewModels.UserViewModel model) { EmailSender emailSender = new EmailSender(); string validationCode = HashUtils.CreateReferralCode(); if (db.Users.Where(u => u.Email == model.Email).Count() > 0) { ModelState.AddModelError("", "A user with these credentials already exists."); return(View()); } if (!ModelState.IsValid) { return(View(model)); } User user = new User(); user.Email = model.Email; user.Password = model.Password; user.Name = model.Name; user.Phone = model.Phone; user.IsAdmin = model.IsAdmin; user.IsEmailConfirmed = false; user.ValidationCode = validationCode; if (!service.Insert(user)) { return(View(model)); } emailSender.SendConfirmationEmail(user); //Authentication.AuthenticationManager.Authenticate(user.Email, user.Password); return(RedirectToAction("ConfirmEmail", "Account")); }
public ActionResult Create(UsersCreateViewModel model) { string validationCode = HashUtils.CreateReferralCode(); var repository = new UserRepository(); SendConfirmEmail emailSender = new SendConfirmEmail(); if (!ModelState.IsValid) { return(View(model)); } User user = new User(); user.ImgURL = model.ImgURL; user.Email = model.Email; user.Username = model.Username; user.Password = model.Password; user.FirstName = model.FirstName; user.LastName = model.LastName; user.IsAdmin = model.IsAdmin; user.IsEmailConfirmed = false; user.ValidationCode = validationCode; repository.Insert(user); sendConfirmEmail.SendConfirmationEmailAsync(user); return(RedirectToAction("Index")); }
public async Task <ActionResult> Register(CRUDStudentViewModel model) { string validationCode = HashUtils.CreateReferralCode(); var repository = new StudentRepository(); List <Student> students = repository.GetAll(); SendConfirmEmail emailSender = new SendConfirmEmail(); if (!ModelState.IsValid) { return(View(model)); } if (students.Where(u => u.Email == model.Email).Any()) { ModelState.AddModelError("error_email", "This email is already taken!"); return(View()); //return View("Error"); } else if (students.Where(u => u.Username == model.Username).Any()) { ModelState.AddModelError("error_msg", "This username is already taken!"); return(View()); // return View("Error"); } else { Student student = new Student(); student.ImgURL = model.ImgURL; student.Username = model.Username; student.Password = model.Password; student.Email = model.Email; student.FirstName = model.FirstName; student.LastName = model.LastName; student.IsAdmin = model.IsAdmin; student.IsEmailConfirmed = false; student.ValidationCode = validationCode; student.FacultyNumber = model.FacultyNumber; student.Specialty = model.Specialty; student.GroupId = model.GroupId; student.IsTeacher = model.IsTeacher; student.IsStudent = model.IsStudent; repository.Insert(student); sendConfirmEmail.SendConfirmationEmailAsync(student); } return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> Register(UserCreateViewModel model) { string validationCode = HashUtils.CreateReferralCode(); var repository = new UserRepository(); List <User> users = repository.GetAll(); SendConfirmEmail emailSender = new SendConfirmEmail(); if (!ModelState.IsValid) { return(View(model)); } if (users.Where(u => u.Email == model.Email).Any()) { ModelState.AddModelError("error_email", "This email is already taken!"); return(View()); //return View("Error"); } else if (users.Where(u => u.Username == model.Username).Any()) { ModelState.AddModelError("error_msg", "This username is already taken!"); return(View()); // return View("Error"); } else { User user = new User(); user.ImgURL = model.ImgURL; user.Username = model.Username; user.Password = model.Password; user.Email = model.Email; user.FirstName = model.FirstName; user.LastName = model.LastName; user.IsAdmin = model.IsAdmin; user.IsEmailConfirmed = false; user.ValidationCode = validationCode; user.IsStudent = model.IsStudent; user.IsTeacher = model.IsTeacher; repository.Insert(user); sendConfirmEmail.SendConfirmationEmailAsync(user); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Register(RegisterEntry entry) { //if (!entry.Email.Contains("@gmail.com") || !entry.Email.Contains("@outlook.com")) //{ // ViewData["WrongRegister"] = "Only gmail.com accounts are allowed!"; // return View(entry); //} try { //User user = await _userManager.GetUserByEmailAsync(entry.Email); //if (user != null) //{ // ViewData["WrongRegister"] = "Email already taken!"; // return View(entry); //} if (null == await _userManager.GetUserByUsernameAsync(entry.DiscordUsername)) { ViewData["WrongRegister"] = "You haven't signed up with this Discord user yet. Please type !signup in the Discord Server, where you're using the bot."; return(View(entry)); } var tempEmail = (await _userManager.GetUserByUsernameAsync(entry.DiscordUsername)).Email; if (!tempEmail[tempEmail.Length - 1].Equals('@')) { ViewData["WrongRegister"] = "You've already signed up with this Discord user."; //return View(entry); } string password = HashUtils.CreateHashCode(entry.Password); string validationCode = HashUtils.CreateReferralCode(); User newUser = new User(entry.DiscordUsername, entry.Email, password, Role.User, validationCode, false); _ctx.Users.Remove(_ctx.Users.FirstOrDefault(u => u.Username == entry.DiscordUsername)); _ctx.SaveChanges(); await _userManager.RegisterAsync(newUser); await _notificationManager.SendConfirmationEmailAsync(newUser); } catch (Exception) { //await _logger.LogCustomExceptionAsync(ex, null); return(RedirectToAction("Error", "Home")); } return(View("Welcome")); }
public ActionResult Create(CRUDTeacherViewModel model) { string validationCode = HashUtils.CreateReferralCode(); var repository = new TeacherRepository(); SendConfirmEmail emailSender = new SendConfirmEmail(); List <Teacher> teachers = repository.GetAll(); if (!ModelState.IsValid) { return(View(model)); } if (teachers.Where(u => u.Email == model.Email).Any()) { ModelState.AddModelError("error_email", "This email is already taken!"); return(View()); //return View("Error"); } else if (teachers.Where(u => u.Username == model.Username).Any()) { ModelState.AddModelError("error_msg", "This username is already taken!"); return(View()); // return View("Error"); } else { Teacher teacher = new Teacher(); // user.Id = model.Id; teacher.ImgURL = model.ImgURL; teacher.Username = model.Username; teacher.Password = model.Password; teacher.Email = model.Email; teacher.FirstName = model.FirstName; teacher.LastName = model.LastName; teacher.IsAdmin = model.IsAdmin; teacher.IsEmailConfirmed = false; teacher.ValidationCode = validationCode; teacher.Subject = model.Subject; teacher.IsTeacher = model.IsTeacher; repository.Insert(teacher); sendConfirmEmail.SendConfirmationEmailAsync(teacher); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Register(RegisterEntry entry) { try { var password = HashUtils.CreateHashCode(entry.Password); string validationCode = HashUtils.CreateReferralCode(); User user = new User(entry.Email, password, validationCode); if (user.Email != null && user.Password != null) { var existOrNot = await _userManager.CheckEmailForExistance(user.Email); if (existOrNot == null) { await _userManager.RegisterAsync(user); await _notificationManager.SendConfirmationEmailAsync(user); } else { return(RedirectToAction("About", "Home")); // Must implement other redirection for error } } else { return(RedirectToAction("About", "Home")); // Must implement other redirection for error } } catch (Exception ex) { await _logger.LogCustomExceptionAsync(ex, null); return(RedirectToAction("Index", "Home")); } return(View("Welcome")); //return RedirectToAction("Index", "Home"); }
private static List <User> GetInitialUsers() { return(new List <User>() { new User( "dev", "", ///TODO: Initial User/Administrator Email (Seed) HashUtils.CreateHashCode("1"), Role.Administrator, HashUtils.CreateReferralCode(), true, new CustomId(new Guid("fe3006d3-9e69-477f-ab96-638bc230a439")) ), new User( "dev2", "", ///TODO: Initial User/Administrator Email (Seed) HashUtils.CreateHashCode("1"), Role.Administrator, HashUtils.CreateReferralCode(), true, new CustomId(new Guid("fe3006d3-9e69-477f-ab96-638bc230a439")) ) }); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { string username = db.Users.FirstOrDefault(u => u.Username == model.Username).Username; if (db.Users.FirstOrDefault(u => u.Username == model.Username).Email.Equals("@")) { ViewData["WrongRegister"] = "Email already taken!"; return(View(model)); } var newUser = new User(username, model.Email, HashUtils.CreateHashCode(model.Password), Role.User, HashUtils.CreateReferralCode(), false); db.Users.Remove(db.Users.FirstOrDefault(u => u.Username == model.Username)); // ? db.SaveChanges(); await userManager.RegisterAsync(newUser); //await notificationManager.SendConfirmationEmailAsync(newUser); _logger.LogInformation("User created a new account with password."); return(RedirectToLocal(returnUrl)); } // If we got this far, something failed, redisplay form return(View(model)); }