public async Task <IHttpActionResult> RegisterDependent(RegisterDependentModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (SvcContainer.UserSvc.IsUserNameUsed(model.UserName))
            {
                return(BadRequest("Username already in use"));
            }

            var currUserModel = SvcContainer.UserSvc.GetCurrentUserModel();
            var user          = new ApplicationUser()
            {
                UserName = model.UserName, Email = currUserModel.Email
            };

            user.EmailConfirmed = true;

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            var userModel = SvcContainer.UserSvc.CreateNewDependentUser(user.Id, user.UserName, user.Email, model);

            userModel.DependentPermission.User = null;
            SvcContainer.UserSvc.ResetStoredUser();

            return(Ok(userModel));
        }
示例#2
0
        public UserModel CreateNewDependentUser(string localAuthId, string userName, string email, RegisterDependentModel model)
        {
            var childUser = CreateNewUser(localAuthId, userName, email, UserTypeEnum.Child, model);

            return(childUser);
        }