public async Task <ActionResult> RegisterEmployeeUser(RegisterEmployeeViewModel model) { if (ModelState.IsValid) { // Check to see if this user is in the existing database LogicLayer.UserManager usrMgr = new LogicLayer.UserManager(); try { if (usrMgr.FindUser(model.Email)) { // If this user already exists, we need to use the regular Register method return(RedirectToAction("Register", "Account")); } // Not an existing user, create a DataObjects.User without roles else { var employee = new DataObjects.User() { // These fields are need by sp_insert_user Email = model.Email, FirstName = model.GivenName, LastName = model.FamilyName, PhoneNumber = model.PhoneNumber, }; // Add the DataObjects.User to Employe table if (usrMgr.AddUser(employee)) { var employeeID = usrMgr.RetrieveUserIDFromEmail(model.Email); var user = new ApplicationUser() { EmployeeID = employeeID, GivenName = model.GivenName, FamilyName = model.FamilyName, UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, "newuser"); if (result.Succeeded) { return(RedirectToAction("Index", "Admin")); } AddErrors(result); } } } catch { // Creating Employee Failed return(View(model)); } } // ModelState was not valid return(View(model)); }
public async Task <ActionResult> RegisterPersonUser(RegisterPersonViewModel model) { if (ModelState.IsValid) { // check to see if this user is in the existing database LogicLayer.UserManager usrMgr = new LogicLayer.UserManager(); try { if (usrMgr.FindUser(model.Email)) { // if this user already exists, we need to use the regular Register method return(RedirectToAction("Register", "Account")); } else // not a existing user, creae a DataObjects.User without roles { var person = new DataObjects.User() { Email = model.Email, FirstName = model.GivenName, LastName = model.FamilyName, PhoneNumber = model.PhoneNumber }; if (usrMgr.AddUser(person)) // add the DataObjects.User to Person table { var personID = usrMgr.RetrieveUserIDFromEmail(model.Email); var user = new ApplicationUser // if it worked, create an identity user { PersonID = personID, GivenName = model.GivenName, FamilyName = model.FamilyName, UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, "newuser"); if (result.Succeeded) // go back to Admin/Index View { return(RedirectToAction("Index", "Admin")); } AddErrors(result); } } } catch (Exception) { // creating employee failed return(View(model)); } } // modelstate was not valid return(View(model)); }