public async Task <IActionResult> Register(RegisterViewModel registerVm) { HttpContext.Session.SetString("user_name", ""); HttpContext.Session.SetString("id", ""); if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Complet all fields."); return(View(registerVm)); } var exist = await _context.Persons .SingleOrDefaultAsync(m => m.EmailAddress == registerVm.Email); if (exist != null) { ModelState.AddModelError("Error", "Email address is used."); return(View(registerVm)); } exist = await _context.Persons .SingleOrDefaultAsync(m => m.Username == registerVm.UserName); if (exist != null) { ModelState.AddModelError("Error", "Username is used."); return(View(registerVm)); } exist = await _context.Persons .SingleOrDefaultAsync(m => m.Cnp == registerVm.Cnp); if (exist != null) { ModelState.AddModelError("Error", "Cnp is used."); return(View(registerVm)); } var user = new Person { Id = new Guid(), Cnp = registerVm.Cnp, FirstName = registerVm.FirstName, LastName = registerVm.LastName, Username = registerVm.UserName, EmailAddress = registerVm.Email, Password = CryptingUtils.Encode(registerVm.Password), Gender = registerVm.Gender, Birthday = registerVm.Birthday, Role = "Patient" }; _context.Add(user); await _context.SaveChangesAsync(); MailUtils email; email = new MailUtils(user.EmailAddress, "Account Confirmation.", "Your account has been successfully created. You can login.\nA beautiful day!\nMedicore team."); email.Send(); return(RedirectToAction("Login", "Persons")); }
public async Task <IActionResult> Create([Bind("Category,Specialization,Rating,Cnp,FirstName,EmailAddress,LastName,Username,Password,Gender,Birthday,Role")] Medic medic) { if (ModelState.IsValid) { medic.Id = Guid.NewGuid(); medic.Password = CryptingUtils.Encode(medic.Password); medic.Role = "Medic"; _context.Add(medic); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(medic)); }
public async Task <IActionResult> Login(LoginViewModel loginVm) { if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Complete all fields."); return(View()); } var isOk = await _context.Persons .SingleOrDefaultAsync(m => m.Username == loginVm.UserName && m.Password == CryptingUtils.Encode(loginVm.Password)); if (isOk == null) { ModelState.AddModelError("Error", "User or password is wrong!"); return(View()); } HttpContext.Session.SetString("user_name", isOk.Username); HttpContext.Session.SetString("id", isOk.Id.ToString()); return(RedirectToAction("Index", isOk.Role == "Patient" ? "Patients" : "Medics")); }