Пример #1
0
 public IEnumerable <RolDto> Listar()
 {
     return(RolMapper.ToRolDtos(repositorio.GetRolUsuario(0)));
 }
Пример #2
0
        public void Actualizar(Trabajador entidad)
        {
            cn.Open();
            SqlTransaction tn = cn.BeginTransaction();

            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = USP_MNT_TRABAJADOR;
                cmd.Transaction = tn;

                cmd.Parameters.AddWithValue("@Opcion", "2");
                cmd.Parameters.AddWithValue("@Id", entidad.Id);
                cmd.Parameters.AddWithValue("@Nombre", entidad.Nombre);
                cmd.Parameters.AddWithValue("@Apellido", entidad.Apellido);
                cmd.Parameters.AddWithValue("@Telefono", entidad.Telefono);
                cmd.Parameters.AddWithValue("@DNI", entidad.Dni);
                cmd.Parameters.AddWithValue("@Email", entidad.Email);
                cmd.Parameters.AddWithValue("@Direccion", entidad.Direccion);
                cmd.Parameters.AddWithValue("@Sexo", entidad.Sexo);
                cmd.Parameters.AddWithValue("@Usuario", entidad.Usuario);
                cmd.Parameters.AddWithValue("@Contrasenia", entidad.Contrasenia);

                cmd.ExecuteNonQuery();


                IEnumerable <Rol> rolesActuales = rolRepositorio.GetRolUsuario(entidad.Id);
                //Eliminar roles

                IEnumerable <Rol> tmp = new List <Rol>();

                foreach (Rol r in rolesActuales)
                {
                    bool encontrado = false;
                    foreach (Rol r2 in entidad.Roles)
                    {
                        if (r2.Id == r.Id)
                        {
                            encontrado = true;
                            break;
                        }
                    }

                    if (!encontrado)
                    {
                        rolRepositorio.ElimiarRolUsuario(new RolUsuario {
                            Rol = r, Usuario = entidad
                        }, cn, tn);
                    }
                }


                // Insertar roles
                foreach (Rol r in entidad.Roles)
                {
                    bool encontrado = false;
                    foreach (Rol r2 in rolesActuales)
                    {
                        if (r2.Id == r.Id)
                        {
                            encontrado = true;
                            break;
                        }
                    }

                    if (!encontrado)
                    {
                        rolRepositorio.CrearRolUsuario(new RolUsuario {
                            Usuario = entidad, Rol = r
                        }, cn, tn);
                    }
                }

                tn.Commit();
            }
            catch (Exception ex)
            {
                tn.Rollback();
                throw ex;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }
        }