public async Task <User> Handle(SignupCredentials signupCredentials)
        {
            if (signupCredentials.Username == null || !User.isValidEmail(signupCredentials.Username))
            {
                throw new Exception("Invalid email!");
            }
            if (signupCredentials.Name == null || signupCredentials.Name.Equals(""))
            {
                throw new Exception("Name can't be empty!");
            }
            if (signupCredentials.Password == null || signupCredentials.Password.Equals(""))
            {
                throw new Exception("Password can't be empty!");
            }
            if (signupCredentials.Name.Length < 3)
            {
                throw new Exception("Name is too short!");
            }
            User newUser = new User(signupCredentials.Username, signupCredentials.Password, signupCredentials.Name);

            await _userService.AddNewUser(new UserDto()
            {
                Id       = newUser.Id,
                Name     = newUser.Name,
                Password = newUser.Password,
                Status   = newUser.Status,
                Username = newUser.Username
            });

            return(newUser);
        }
 public async Task <IActionResult> SignUp([FromBody] SignupCredentials signupCredentials)
 {
     return(GenerateToken(await _signUpRequestHandler.Handle(signupCredentials)));
 }