public async Task <IActionResult> CreateUser([FromBody] VmUserCreate vmUserCreate) { if (ModelState.IsValid) { try { User createdUser = await _userService.CreateUser(vmUserCreate); VmUser vmUser = _mapper.Map <VmUser>(createdUser); return(Ok(DataMessage.Data(vmUser))); } catch (AppException ex) { return(BadRequest(ex.ReturnBadRequest())); } catch (Exception ex) { return(BadRequest(AppException.ReturnBadRequest(ex.Message))); } } else { return(BadRequest(AppException.ReturnBadRequest(ModelState))); } }
public async Task <User> CreateUser(VmUserCreate vmUserCreate) { #region Validate Username User similerUser = await UnitOfWork.UsersRepository.Where(user => user.Username == vmUserCreate.Username).FirstOrDefaultAsync(); if (similerUser != null) { throw new AppException(Errors.E_USERNAME_IS_TAKEN, new { vmUserCreate.Username }, AppObjects.USERNAME); } #endregion User user = new() { Name = vmUserCreate.Name, Username = vmUserCreate.Username, Role = AppRole.USER }; user.Password = _securityService.CreatePasswordHash(vmUserCreate.Password); await UnitOfWork.UsersRepository.AddAsync(user); await UnitOfWork.SaveChangesAsync(); return(user); }