public async Task <ActionResult> RegisterInstructor(RegisterInstructorViewModel model) { if (ModelState.IsValid) { var user = new User { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var instructor = new Instructor() { UserId = user.Id, Name = model.Name, Designation = model.Designation }; var selectedCourses = courseHelper.GetCourses(model.SelectedCourseId); foreach (var course in selectedCourses) { instructor.Courses.Add(course); } UserManager.AddToRole(user.Id, "Instructor"); _db.Instructor.Add(instructor); _db.SaveChanges(); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult RegisterInstructor() { var viewModel = new RegisterInstructorViewModel { Courses = _db.Course .Select(c => new SelectListItem { Text = c.Name, Value = c.Id.ToString(), }) }; return(View(viewModel)); }
private RegisterInstructorViewModel PopulateInstructorRegisterViewModel() { List <IdentityRole> roles; RegisterInstructorViewModel viewModel = new RegisterInstructorViewModel(); using (var db = new ApplicationDbContext()) { var roleStore = new RoleStore <IdentityRole>(db); var roleMngr = new RoleManager <IdentityRole>(roleStore); roles = roleMngr.Roles.ToList(); } ViewBag.Roles = new SelectList(roles, "Name", "Name"); return(viewModel); }
public async Task <ActionResult> RegisterInstructor(RegisterInstructorViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await UserManager.AddToRoleAsync(user.Id, model.UserRole); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } List <IdentityRole> roles; RegisterInstructorViewModel viewModel = new RegisterInstructorViewModel(); using (var db = new ApplicationDbContext()) { var roleStore = new RoleStore <IdentityRole>(db); var roleMngr = new RoleManager <IdentityRole>(roleStore); roles = roleMngr.Roles.ToList(); } ViewBag.Roles = new SelectList(roles, "Name", "Name"); // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> Register(RegisterInstructorViewModel model, IFormFile ProfilePictureFile, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { if (ProfilePictureFile != null) { var fnm = model.IdentityNumber; var filename = fnm + DateTime.Now.ToString("MMddHHmmss") + ".jpg"; string uploadPath = Path.Combine(_environment.WebRootPath, "images/Instructor/"); if (filename.Contains('\\')) { filename = filename.Split('\\').Last(); } using (FileStream fs = new FileStream(Path.Combine(uploadPath, filename), FileMode.Append)) { await ProfilePictureFile.CopyToAsync(fs); } model.AvatarImage = filename; } var user = new InstructorUser { UserName = model.IdentityNumber, Email = model.Email, IdentityNumber = model.IdentityNumber, Surname = model.Surname, FirstName = model.FirstName, MiddleName = model.MiddleName, FullName = model.FullName, Gender = model.Gender, DateofBirth = model.DateofBirth, State = model.State, Address = model.Address, ParentName = model.ParentName, ParentAddress = model.ParentAddress, Image = model.AvatarImage, DepartmentID = model.DepartmentID, }; var result = await _userManager.CreateAsync(user, model.Surname); if (result.Succeeded) { //await _userManager.AddToRolesAsync(user, new[] { "Instructor" }); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.Action(nameof(ConfirmEmail), "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); //await _emailSender.SendEmailAsync(model.Email, "Confirm your account", // $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>"); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation(3, "User created a new account with password."); return(RedirectToLocal(returnUrl)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult RegisterInstructor() { RegisterInstructorViewModel viewModel = PopulateInstructorRegisterViewModel(); return(View(viewModel)); }