public async Task <ActionResult> RegisterEmployee(RegisterViewModelEmployee model) { if (ModelState.IsValid) { // var user = new ApplicationUser { UserName = model.Username, Email = model.Email }; //Company company = new Company { Name = model.Company }; var currentUser = UserManager.FindById(User.Identity.GetUserId()); //var currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()); var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Name = model.FullName, CompanyId = currentUser.CompanyId }; var result = await UserManager.CreateAsync(user, model.Password); UserManager.AddToRole(user.Id, "Employee"); if (result.Succeeded) { //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); return(RedirectToAction("Index", "Manage")); //come back to this l8r } //ViewBag.Name = new SelectList(context.Roles.Where(u => !u.Name.Contains("Admin")).ToList(), "Name", "Name"); AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult RegisterEmployee() { var list = new List <Company>(); list = db.Companies.ToList(); var model = new RegisterViewModelEmployee { CompanyList = list.Select(a => new SelectListItem { Text = a.CompanyName, Value = a.CompanyId.ToString() }) }; return(View(model)); }
public async Task <ActionResult> RegisterEmployee(RegisterViewModelEmployee model, HttpPostedFileBase image) { var list = new List <Company>(); list = db.Companies.ToList(); model.CompanyList = list.Select(a => new SelectListItem { Text = a.CompanyName, Value = a.CompanyId.ToString() }); if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(new ApplicationDbContext())); if (!roleManager.RoleExists("Employee")) { var role = new IdentityRole(); role.Name = "Employee"; roleManager.Create(role); } var roleresult = UserManager.AddToRole(user.Id, "Employee"); ApplicationDbContext db = new ApplicationDbContext(); Employee e = new Employee(); e.Firstname = model.Firstname; e.Lastname = model.Lastname; //e.Profileimage = model.Profileimage; var path = Server != null?Server.MapPath("~") : ""; e.SaveImage(image, path, "/ProfileImages/"); e.CompanyId = model.CompanyId; e.ApplicationUserId = user.Id; e.Company = db.Companies.Find(model.CompanyId); db.Employees.Add(e); db.SaveChanges(); // to display the name in the Hello user! a claim is created UserManager.AddClaim(user.Id, new Claim(ClaimTypes.GivenName, e.Firstname + " " + e.Lastname)); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://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", "Employees")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }