How do I modify this registration code so it checks if email entered already exists in the database? I already have a query written for it, but I don't know how to implement it
[HttpPost("Register")]
public async Task<ActionResult<User>> Register(UserDto request, Guid guid)
{
string query = @"
insert into dbo.Users(UserID,Name,Email,PasswordHash,PasswordSalt)
values (@UserID,@Name,@Email,@PasswordHash,@PasswordSalt)
";
string emailValidationQuery = @"SELECT * FROM dbo.Users WHERE Email = @Email";
CreatePasswordHash(request.Password, out byte[] passwordHash, out byte[] passwordSalt);
string psw = PasswordHash(request.Password);
Guid guid1 = Guid.NewGuid();
guid = guid1;
user.UserID = guid;
user.Username = request.Username;
user.Email = request.Email;
user.PasswordHash = Encoding.UTF8.GetBytes(psw);
user.PasswordSalt = passwordSalt;
DataTable table = new DataTable();
string sqlDataSource = _configuration.GetConnectionString("ContactAppCon");
SqlDataReader myReader;
using (SqlConnection myCon = new SqlConnection(sqlDataSource))
{
myCon.Open();
using (SqlCommand myCommand = new SqlCommand(query, myCon))
{
myCommand.Parameters.AddWithValue("@UserID", Guid.NewGuid());
myCommand.Parameters.AddWithValue("@Name", request.Username);
myCommand.Parameters.AddWithValue("@Email", request.Email);
myCommand.Parameters.AddWithValue("@PasswordHash", psw);
myCommand.Parameters.AddWithValue("@PasswordSalt", passwordSalt);
myReader = myCommand.ExecuteReader();
table.Load(myReader);
myReader.Close();
myCon.Close();
}
}
return Ok(user);
}