Skip to content

Instantly share code, notes, and snippets.

@Giovasdf
Created May 20, 2025 21:43
Show Gist options
  • Select an option

  • Save Giovasdf/91e7180e3e7ffcb74e19608875999340 to your computer and use it in GitHub Desktop.

Select an option

Save Giovasdf/91e7180e3e7ffcb74e19608875999340 to your computer and use it in GitHub Desktop.
[Route("UsuarioVentaWeb")]
[HttpPost]
public ActionResult<UsuarioDTO> UsuarioVentaWeb([FromBody] UsuarioDTO usuario)
{
try
{
// Buscar por email
sql =
"select IdUsuario, rut, email, nombre, apellido, password, estado, direccion, esPadrino, idPadrino, saldo, telefono, estavalidado from Usuario where email=@email";
var existente = c.QueryFirstOrDefault<UsuarioDTO>(sql, new { usuario.email });
if (existente == null)
{
// Insertar nuevo
sql =
"insert into usuario (rut, email, nombre, apellido, password, estado, direccion, esPadrino, idPadrino, saldo, telefono, estavalidado) " +
"OUTPUT INSERTED.idUsuario " +
"values (@rut, @email, @nombre, @apellido, @password, @estado, @direccion, @esPadrino, @idPadrino, @saldo, @telefono, @estavalidado)";
Guid x = c.ExecuteScalar<Guid>(sql, usuario);
usuario.IdUsuario = x;
// Enviar correo
EnvioEmail email = new EnvioEmail();
email.EnviarEmailRecordatorio(usuario.email, usuario.IdUsuario);
return Ok(usuario);
}
else
{
// Actualizar datos excepto email y IdUsuario
sql = @"update Usuario set
rut = @rut,
nombre = @nombre,
apellido = @apellido,
password = @password,
estado = @estado,
direccion = @direccion,
esPadrino = @esPadrino,
idPadrino = @idPadrino,
saldo = @saldo,
telefono = @telefono,
estavalidado = @estavalidado
where email = @email";
c.Execute(sql, usuario);
// Retornar el usuario actualizado
sql =
"select IdUsuario, rut, email, nombre, apellido, password, estado, direccion, esPadrino, idPadrino, saldo, telefono, estavalidado from Usuario where email=@email";
var actualizado = c.QueryFirst<UsuarioDTO>(sql, new { usuario.email });
// Si no estaba validado, reenvía el correo
if (!actualizado.estavalidado)
{
EnvioEmail email = new EnvioEmail();
email.EnviarEmailRecordatorio(actualizado.email, actualizado.IdUsuario);
}
return Ok(actualizado);
}
}
catch (SqlException ex)
{
return BadRequest(ex.Message);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment