コード例 #1
0
        public async Task <IActionResult> Insert(UserCreationParameters parameters)
        {
            FirebaseAuthLink firebaseUser = null;
            User             user         = null;

            try
            {
                user = _repo.GetAll().FirstOrDefault(x => x.Email.ToLower() == parameters.Email.ToLower());

                if (user == null)
                {
                    firebaseUser = await _fireRepo.CreateUser(parameters.Email, parameters.Password);

                    User u = new User()
                    {
                        Email   = parameters.Email,
                        IsAdmin = parameters.IsAdmin
                    };

                    _repo.Insert(u);
                    return(CreatedAtAction("GetByID", new { id = u.ID }, BuildResponse(u)));
                }
                else
                {
                    return(ReturnUserFriendlyError(Errors.ExistingEmail));
                }
            }
            catch
            {
                if (firebaseUser != null)
                {
                    await _fireRepo.DeleteUser(firebaseUser.FirebaseToken);
                }

                if (user != null)
                {
                    _repo.Delete(user.ID);
                }

                return(ReturnUserFriendlyError(Errors.Unknown));
            }
        }
コード例 #2
0
        public UserCreationResponse CreateUser(UserCreationParameters userData)
        {
            var userManagementService = ObjectFactory.GetInstance <IUserManagementService>();
            var newUser = new Trex.Server.Core.Model.User()
            {
                UserName = userData.User.UserName,
                Name     = userData.User.FullName,
                Email    = userData.User.Email,
                Price    = userData.User.Price
            };

            var userCreationResponse = userManagementService.CreateUser(newUser, userData.Password, userData.PasswordQuestion,
                                                                        userData.PasswordAnswer);

            if (userCreationResponse.Success)
            {
                UpdateUserRoles(userData.User.UserName, userData.User.Roles);
            }

            return(userCreationResponse.ToDtoObject());
        }