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);
        }
Пример #2
0
        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");
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }