Example #1
0
        public async Task <ActionResult> AddUser([Bind(Include = "FirstName,LastName,LoginEmail,LoginPassword,ConfirmPassword,PrivacyLevel,UserRole")] UserAdminAddUserView model)
        {
            if (Request.Form["resetbutton"] != null)
            {
                return(RedirectToAction("AddUser"));
            }

            if (ModelState.IsValid)
            {
                //Create a new AppUser
                AppUser appUser = AppUserHelpers.CreateAppUser(db, model, User);

                var user = new ApplicationUser {
                    UserName = model.LoginEmail, Email = model.LoginEmail, AppUserId = appUser.AppUserId, CurrentUserRole = appUser.UserRole
                };
                var result = await UserManager.CreateAsync(user, model.LoginPassword);

                if (result.Succeeded)
                {
                    if (Request.Form["adduserbutton"] != null)
                    {
                        return(RedirectToAction("AddUser"));
                    }

                    return(RedirectToAction("UserAdmin"));
                }

                //Delete the appUser account as this has not gone through
                AppUserHelpers.DeleteAppUser(db, appUser.AppUserId);
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Example #2
0
        public static AppUser CreateAppUser(ApplicationDbContext db, UserAdminAddUserView view, IPrincipal user)
        {
            AppUser appUser = new AppUser()
            {
                AppUserId      = Guid.NewGuid(),
                FirstName      = view.FirstName,
                LastName       = view.LastName,
                EntityStatus   = EntityStatusEnum.PasswordResetRequired,
                OrganisationId = GetOrganisationIdFromUser(db, user),
                LoginEmail     = view.LoginEmail,
                PrivacyLevel   = view.PrivacyLevel,
                UserRole       = view.UserRole,
                RecordChange   = RecordChangeEnum.NewRecord,
                RecordChangeBy = GetAppUserIdFromUser(user),
                RecordChangeOn = DateTime.Now
            };

            db.AppUsers.Add(appUser);
            db.SaveChanges();

            return(appUser);
        }