public ActionResult Create([FromBody] JsonElement jsUser) { try { //Add checking if user already exits by username or email var user = JsonConvert.DeserializeObject <NewUserModel>(jsUser.GetRawText()); var matchUserName = _users.GetUser(user.UserName).Result; if (matchUserName != null || _users.GetUserByEmail(user.Email).Result != null) { if (matchUserName != null) { return(BadRequest("UserName already exists!")); } else { return(BadRequest("Email already exists!")); } } var recoveryCodes = GenerateRecovery(); _users.Create(new UserModel { Id = user.Id, UserName = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, UserType = user.UserType, Specialty = user.Specialty, ProjectId = new List <ObjectId>() }).Wait(); var id = _users.GetUser(user.UserName).Result.Id; var hash = HashSalt(user.Password, null); _login.Create(new LoginModel { Id = id, UserName = user.UserName, Email = user.Email, Password = hash.Pass, Recovery = recoveryCodes.HashKey }); Task.Run(() => _salt.Create(new SaltModel(id, Convert.ToBase64String(GenerateSalt()), hash.Salt, recoveryCodes.SaltKey))); Task.WaitAll(); return(Ok(new APIReqModel { Json = string.Join(",", recoveryCodes.Key.ToArray()) })); } catch { // return BadRequest(); throw new Exception("Error code 3.2 - UserController Post Create user error"); } }
public void Create(User user) => userCrud.Create(user);