public int Guardar(Entidades.Join_UsuariosClientes obj_Usuario_Cliente) {// deberia recibir un modelo //html form de razor int retorno = -1; //si el ID_USUARIO es cero agregar if (obj_Usuario_Cliente.ID_USUARIO == 0) { AccesoDatos.Usuarios metodos = new AccesoDatos.Usuarios(); retorno = metodos.Crear(obj_Usuario_Cliente); } else // si el ID_USUARIO es distinto de cero editar { AccesoDatos.Usuarios metodos = new AccesoDatos.Usuarios(); int filasAfectadas = metodos.Editar(obj_Usuario_Cliente); //si hay una fila afectada(actualizada) retornamos 2 if (filasAfectadas == 1) { retorno = 2; } } return(retorno); }
public int Editar(Entidades.Join_UsuariosClientes obj) { int filasAfectadas = 0; SqlConnection conexion = new SqlConnection(cadenaConexion); conexion.Open(); var transaccion = conexion.BeginTransaction(); try { StringBuilder consultaSQL1 = new StringBuilder(); consultaSQL1.Append("UPDATE Usuarios "); consultaSQL1.Append("SET IdRol = @idRolParametro, "); consultaSQL1.Append("Nombre = @nombreParametro, Apellido = @apellidoParametro, "); consultaSQL1.Append("Activo = @activoParametro "); consultaSQL1.Append("WHERE ID = @idParametro "); filasAfectadas = conexion.Execute(consultaSQL1.ToString(), new { idParametro = obj.ID_USUARIO, idRolParametro = obj.ID_ROL, nombreParametro = obj.NOMBRES, apellidoParametro = obj.APELLIDOS, activoParametro = obj.ACTIVO } , transaction: transaccion); if (obj.ID_ROL == "CLI") { StringBuilder consultaSQL2 = new StringBuilder(); consultaSQL2.Append("UPDATE Clientes "); consultaSQL2.Append("SET RazonSocial = @RazonSocialParametro "); consultaSQL2.Append("WHERE IdUsuario = @IdUsuarioParametro "); filasAfectadas = conexion.Execute(consultaSQL2.ToString(), new { RazonSocialParametro = obj.RAZON_SOCIAL, IdUsuarioParametro = obj.ID_USUARIO }, transaction: transaccion); } transaccion.Commit(); } catch (Exception ex) { filasAfectadas = 0; transaccion.Rollback(); } finally { conexion.Close(); } return(filasAfectadas); }
public ActionResult EditarUsuario(Models.Test.TestModel model) { Entidades.Join_UsuariosClientes obj = model.ObjetoUsuarioCliente; obj.ID_ROL = model.idRolSeleccionado; AccesoDatos.Usuarios metodos = new AccesoDatos.Usuarios(); int filasAfectadas = metodos.Editar(obj); model.Mensaje = "usuario editado con exito!!!!!"; return(RedirectToAction("TablaUsuarios", "Test", model)); }
public ActionResult AgregarUsuario(Models.Test.TestModel model) { Entidades.Join_UsuariosClientes obj = model.ObjetoUsuarioCliente; obj.ID_ROL = model.idRolSeleccionado; AccesoDatos.Usuarios metodos = new AccesoDatos.Usuarios(); int filasAfectadas = metodos.CrearUsuarioCliente(obj); // ViewBag.MensajeDeAlerta = "para barrio alertifty!"; model.Mensaje = "usuario agregado con exito!!!!!"; // ViewData["Message"] = "Success"; return(RedirectToAction("TablaUsuarios", "Test", model)); //string mensaje = "agerrgador"; ////boostrap alert //TablaUsuarios(mensaje); // return View("TablaUsuarios"); }
public Entidades.Join_UsuariosClientes Detalle(int id) { Entidades.Join_UsuariosClientes obj = new Entidades.Join_UsuariosClientes(); StringBuilder consultaSQL = new StringBuilder(); /* * SELECT USUARIOS.Id AS ID_USUARIO, Roles.Descripcion AS ROL, * USUARIOS.Usuario AS USERNAME, USUARIOS.Nombre AS NOMBRES, USUARIOS.Apellido AS APELLIDOS, * USUARIOS.FechaCreacion AS FECHA_CREACION, * CASE * WHEN Activo = 1 THEN 'Activo' * ELSE 'Baja' * END AS ESTADO * FROM USUARIOS * INNER JOIN ROLES ON * Usuarios.IdRol = Roles.Id * WHERE Usuarios.Id = 4 */ consultaSQL.Append("SELECT USUARIOS.Id AS ID_USUARIO, Roles.Descripcion AS ROL, "); consultaSQL.Append("USUARIOS.Usuario AS USERNAME, USUARIOS.Nombre AS NOMBRES, USUARIOS.Apellido AS APELLIDOS, "); consultaSQL.Append("USUARIOS.FechaCreacion AS FECHA_CREACION, "); consultaSQL.Append("CASE "); consultaSQL.Append("WHEN Activo = 1 THEN 'Activo' "); consultaSQL.Append("ELSE 'Baja' "); consultaSQL.Append("END AS ESTADO "); consultaSQL.Append("FROM USUARIOS "); consultaSQL.Append("INNER JOIN ROLES ON "); consultaSQL.Append("Usuarios.IdRol = Roles.Id "); consultaSQL.Append("WHERE Usuarios.Id = @idUsuario "); using (var connection = new SqlConnection(cadenaConexion)) { obj = connection.QuerySingleOrDefault <Entidades.Join_UsuariosClientes>(consultaSQL.ToString(), new { idUsuario = id }); } return(obj); }
public int Crear(Entidades.Join_UsuariosClientes obj) { int filasAfectadas = 0; SqlConnection conexion = new SqlConnection(cadenaConexion); conexion.Open(); var transaccion = conexion.BeginTransaction(); try { string clave = obj.USERNAME; string claveSalt = GenerarPasswordSalt(clave); string claveHash = GenerarPasswordHash(clave, claveSalt); StringBuilder consultaSQL1 = new StringBuilder(); consultaSQL1.Append("INSERT INTO Usuarios(IdRol, Usuario, Nombre, Apellido, Password, PasswordSalt, FechaCreacion, Activo) "); consultaSQL1.Append("VALUES(@IdRol, @Usuario, @Nombre, @Apellido, @Password, @PasswordSalt, @FechaCreacion, @Activo); "); filasAfectadas = conexion.Execute(consultaSQL1.ToString(), new { IdRol = obj.ID_ROL, Usuario = obj.USERNAME, Nombre = obj.NOMBRES, Apellido = obj.APELLIDOS, Password = claveHash, PasswordSalt = claveSalt, FechaCreacion = DateTime.Now, Activo = obj.ACTIVO } , transaction: transaccion); if (obj.ID_ROL == "CLI") { StringBuilder consultaSQL2 = new StringBuilder(); consultaSQL2.Append("SELECT Id FROM Usuarios "); consultaSQL2.Append("WHERE Usuario LIKE @UsernameParametro "); obj.ID_USUARIO = conexion.ExecuteScalar <int>(consultaSQL2.ToString(), new { UsernameParametro = obj.USERNAME }, transaction: transaccion); StringBuilder consultaSQL3 = new StringBuilder(); consultaSQL3.Append("INSERT INTO Clientes(RazonSocial, FechaCreacion, IdUsuario) "); consultaSQL3.Append("VALUES (@RazonSocialParametro, @FechaCreacionParametro, @IdUsuarioParametro ) "); filasAfectadas = conexion.Execute(consultaSQL3.ToString(), new { RazonSocialParametro = obj.RAZON_SOCIAL, IdUsuarioParametro = obj.ID_USUARIO, FechaCreacionParametro = DateTime.Now, }, transaction: transaccion); } transaccion.Commit(); } catch (Exception ex) { filasAfectadas = 0; transaccion.Rollback(); } finally { // close conection conexion.Close(); } return(filasAfectadas); }
public int Editar(Entidades.Join_UsuariosClientes obj) { int filasAfectadas = 0; SqlConnection conexion = new SqlConnection(cadenaConexion); conexion.Open(); //como vamos a realizar dos inserciones debemos hacerlo con una transaccion var transaccion = conexion.BeginTransaction(); try { //primer consulta que inserta un nuevo usuario admin o cliente StringBuilder consultaSQL1 = new StringBuilder(); consultaSQL1.Append("UPDATE Usuarios "); consultaSQL1.Append("SET IdRol = @idRolParametro, "); consultaSQL1.Append("Nombre = @nombreParametro, Apellido = @apellidoParametro, "); consultaSQL1.Append("Activo = @activoParametro "); consultaSQL1.Append("WHERE ID = @idParametro "); filasAfectadas = conexion.Execute(consultaSQL1.ToString(), new { idParametro = obj.ID_USUARIO, idRolParametro = obj.ID_ROL, nombreParametro = obj.NOMBRES, apellidoParametro = obj.APELLIDOS, activoParametro = obj.ACTIVO } , transaction: transaccion); //solamente si el usuario es de rol cliente se realiza esta operacion extra if (obj.ID_ROL == "CLI") { ///////////////////////////// //Si es cliente, actualizamos la Razon Social StringBuilder consultaSQL2 = new StringBuilder(); consultaSQL2.Append("UPDATE Clientes "); consultaSQL2.Append("SET RazonSocial = @RazonSocialParametro "); consultaSQL2.Append("WHERE IdUsuario = @IdUsuarioParametro "); filasAfectadas = conexion.Execute(consultaSQL2.ToString(), new { RazonSocialParametro = obj.RAZON_SOCIAL, IdUsuarioParametro = obj.ID_USUARIO }, transaction: transaccion); } ///////////////////////////////// // si las operaciones relacionadas salieron bien, se realiza un commit transaccion.Commit(); } catch (Exception ex) { // en caso que haya un error en el medio de la funcion //lanzamos codigo de error 0 y realizamos un rollback para que los datos //no se reflejen en la base de datos filasAfectadas = 0; transaccion.Rollback(); } finally { //si el procedimiento salio bien o mal, siempre se debe cerrar la conexion conexion.Close(); } // si el resultado de filasafectadas es 1 es porque salio OK return(filasAfectadas); }
public int CrearUsuarioCliente(Entidades.Join_UsuariosClientes obj) { int filasAfectadas = 0; SqlConnection conexion = new SqlConnection(cadenaConexion); conexion.Open(); //como vamos a realizar dos inserciones debemos hacerlo con una transaccion var transaccion = conexion.BeginTransaction(); try { //Cuando se crea por primera vez el usuario y la contraseña son las mismas //asi en el proximo login pide cambiarla string clave = obj.USERNAME; //generamos password salt para guardar en la base string claveSalt = GenerarPasswordSalt(clave); //generamos Password hash ya encriptada, para que solo el usuario sepa la password string claveHash = GenerarPasswordHash(clave, claveSalt); //primer consulta que inserta un nuevo usuario admin o cliente StringBuilder consultaSQL1 = new StringBuilder(); consultaSQL1.Append("INSERT INTO Usuarios(IdRol, Usuario, Nombre, Apellido, Password, PasswordSalt, FechaCreacion, Activo) "); consultaSQL1.Append("VALUES(@IdRol, @Usuario, @Nombre, @Apellido, @Password, @PasswordSalt, @FechaCreacion, @Activo); "); filasAfectadas = conexion.Execute(consultaSQL1.ToString(), new { IdRol = obj.ID_ROL, Usuario = obj.USERNAME, Nombre = obj.NOMBRES, Apellido = obj.APELLIDOS, Password = claveHash, PasswordSalt = claveSalt, FechaCreacion = DateTime.Now, Activo = obj.ACTIVO } , transaction: transaccion); //solamente si el usuario es de rol cliente se realiza esta operacion extra if (obj.ID_ROL == "CLI") { ///////////////////////////// StringBuilder consultaSQL2 = new StringBuilder(); //obtenemos el id usuario segun el username, //este dato nos servirá luego para insertarlo en la tabla clientes consultaSQL2.Append("SELECT Id FROM Usuarios "); consultaSQL2.Append("WHERE Usuario LIKE @UsernameParametro "); obj.ID_USUARIO = conexion.ExecuteScalar <int>(consultaSQL2.ToString(), new { UsernameParametro = obj.USERNAME }, transaction: transaccion); ///////////////////////////////// //insertamos nuevo cliente, relacionado con el idusuario de la tabla usuarios StringBuilder consultaSQL3 = new StringBuilder(); consultaSQL3.Append("INSERT INTO Clientes(RazonSocial, FechaCreacion, IdUsuario) "); consultaSQL3.Append("VALUES (@RazonSocialParametro, @FechaCreacionParametro, @IdUsuarioParametro ) "); filasAfectadas = conexion.Execute(consultaSQL3.ToString(), new { RazonSocialParametro = obj.RAZON_SOCIAL, IdUsuarioParametro = obj.ID_USUARIO, FechaCreacionParametro = DateTime.Now, }, transaction: transaccion); } ///////////////////////////////// // si las operaciones relacionadas salieron bien, se realiza un commit transaccion.Commit(); } catch (Exception ex) { // en caso que haya un error en el medio de la funcion //lanzamos codigo de error 0 y realizamos un rollback para que los datos //no se reflejen en la base de datos filasAfectadas = 0; transaccion.Rollback(); } finally { //si el procedimiento salio bien o mal, siempre se debe cerrar la conexion conexion.Close(); } // si el resultado de filasafectadas es 1 es porque salio OK return(filasAfectadas); }