public int Eliminar(Entity.Familia familia) { try { familia.Nombre = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible); familia.Eliminado = true; if (!this.ValidarEliminacionFamiliaPorPatentes(familia.Id)) { throw new Exception("Por normas de control interno no puede quedar zona de nadie. Hay patentes en la familia que NO contienen otra asignacion."); } using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { int result = repository.Eliminar(familia, dv.CalcularDVH(this.ConcatenarRegistro(familia))); dv.ActualizarDVV("Permiso"); scope.Complete(); return(result); } } catch (Exception ex) { throw ex; } }
public Entity.Familia Consultar(string nombre) { string sqlCommand = @"SELECT * FROM permiso p WHERE p.Compuesto = 1 AND p.Eliminado = 0 AND p.Nombre = " + "'" + nombre + "'"; DataTable tabla = db.ExecuteNonQuery(sqlCommand); if (tabla.Rows.Count == 0) { return(null); } Entity.Familia familia = new Entity.Familia { Id = int.Parse(tabla.Rows[0]["Id"].ToString()), Nombre = Util.Encrypt.Desencriptar(tabla.Rows[0]["Nombre"].ToString()), Compuesto = (bool)tabla.Rows[0]["Compuesto"], Eliminado = (bool)tabla.Rows[0]["Eliminado"], Descripcion = tabla.Rows[0]["Descripcion"].ToString(), DVH = tabla.Rows[0]["DVH"].ToString() }; this.ConsultarPatentesPorFamilia(familia); return(familia); }
public List <Entity.Familia> Listar() { List <Entity.Familia> familias = new List <Entity.Familia>(); string sqlCommand = @"SELECT * FROM permiso p WHERE p.Compuesto = 1 AND p.Eliminado = 0"; DataTable tabla = db.ExecuteNonQuery(sqlCommand); foreach (DataRow row in tabla.Rows) { Entity.Familia r = new Entity.Familia { Id = int.Parse(row["Id"].ToString()), Nombre = Util.Encrypt.Desencriptar(row["Nombre"].ToString()), Compuesto = (bool)row["Compuesto"], Eliminado = (bool)row["Eliminado"], Descripcion = row["Descripcion"].ToString(), DVH = row["DVH"].ToString() }; this.ConsultarPatentesPorFamilia(r); familias.Add(r); } return(familias); }
public int Alta(Entity.Familia familia) { try { bool exiteFamilia = this.ValidarFamilia(familia.Nombre); if (exiteFamilia) { throw new Exception("La familia ya se encuentra dado de alta."); } familia.Nombre = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible); //Generacion DVH familia.DVH = dv.CalcularDVH(this.ConcatenarRegistro(familia)); using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { int result = repository.Alta(familia); dv.ActualizarDVV("Permiso"); scope.Complete(); return(result); } } catch (Exception ex) { throw ex; } }
public int Alta(Entity.Familia familia) { string sqlCommand = @"INSERT INTO permiso (NOMBRE, DVH, COMPUESTO, ELIMINADO, DESCRIPCION) VALUES (" + "'" + familia.Nombre + "'" + "," + "'" + familia.DVH + "'" + "," + Convert.ToInt16(familia.Compuesto) + "," + +Convert.ToInt16(familia.Eliminado) + "," + "'" + familia.Descripcion + "'" + ")"; return(db.ExecuteSqlCommand(sqlCommand)); }
public int ConsultarUsuariosAsignados(Entity.Familia familia, int idUsuario) { string sqlCommand = @"SELECT COUNT(u.id) FROM usuario_permiso up INNER JOIN usuario u ON u.id = up.id_usuario INNER JOIN permiso p ON p.id = up.id_permiso WHERE p.Eliminado = 0 AND u.id <> " + idUsuario + " AND p.id =" + familia.Id; return(Convert.ToInt32(db.ExecuteScalar(sqlCommand))); }
private bool ValidarAsignacion(Entity.Familia familia, string nombrePatente) { if (familia.Permisos == null) { return(false); } return(familia.Permisos.Any(p => p.Nombre == nombrePatente)); }
public int Desasignar(Entity.Familia familia, Entity.Patente patente) { try { if (!ValidarDesasignacionPatente(familia.Id, patente.Id)) { throw new Exception("Por normas de control interno no puede quedar zona de nadie. La patente NO contiene otra asignacion."); } return(repository.DesasignarPatente(familia.Id, patente.Id)); } catch (Exception ex) { throw ex; } }
public int Asignar(Entity.Familia familia, Entity.Patente patente) { try { bool contienePatente = this.ValidarAsignacion(familia, patente.Nombre); if (contienePatente) { throw new Exception("El usuario ya contiene la familia asignada."); } return(repository.AsignarPatente(familia.Id, patente.Id)); } catch (Exception ex) { throw ex; } }
public int Asignar(Entity.Usuario usuario, string nombre) { try { bool contieneFamilia = this.ValidarAsignacion(usuario, nombre); if (contieneFamilia) { throw new Exception("El usuario ya contiene la familia asignada."); } Entity.Familia familia = this.Consultar(nombre); return(repository.Asignar(familia.Id, usuario.Id)); } catch (Exception ex) { throw ex; } }
private bool ValidarEliminacionFamiliaPorPatentes(int idFamilia) { Service.Familia familiaService = new Service.Familia(); Service.Patente patenteService = new Service.Patente(); Entity.Familia familia = familiaService.Listar().FirstOrDefault(f => f.Id == idFamilia); if (familia.Permisos.Any()) { foreach (Entity.Patente patente in familia.Permisos) { if (patenteService.ObtenerUsuariosAsignadosPorPatenteYFamilia(patente.Id, familia.Id) == 0 && patenteService.ObtenerUsuariosAsignados(patente.Id) == 0) { return(false); } } } return(true); }
public void ConsultarPatentesPorFamilia(Entity.Familia familia) { string sqlCommand = @"SELECT c.* FROM permiso_compuesto pc INNER JOIN permiso p on p.Id = pc.Id_Permiso INNER JOIN permiso c on c.Id = pc.Id_Compuesto WHERE c.Eliminado = 0 AND p.id = " + familia.Id; DataTable tablaPatentes = db.ExecuteNonQuery(sqlCommand); foreach (DataRow row in tablaPatentes.Rows) { familia.Agregar(new Entity.Patente { Id = int.Parse(row["Id"].ToString()), Nombre = Util.Encrypt.Desencriptar(row["Nombre"].ToString()), Compuesto = (bool)row["Compuesto"], Eliminado = (bool)row["Eliminado"], Descripcion = row["Descripcion"].ToString(), DVH = row["DVH"].ToString() }); } }
public int Modificar(Entity.Familia familia) { try { familia.Nombre = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible); using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { int result = repository.Modificar(familia, dv.CalcularDVH(this.ConcatenarRegistro(familia))); dv.ActualizarDVV("Permiso"); scope.Complete(); return(result); } } catch (Exception ex) { throw ex; } }
public int Modificar(Entity.Familia familia, string DVH) { string sqlCommand = @"UPDATE permiso SET DVH=" + "'" + DVH + "'" + "," + "Descripcion=" + "'" + familia.Descripcion + "'" + " WHERE Id=" + familia.Id; return(db.ExecuteSqlCommand(sqlCommand)); }
public int Eliminar(Entity.Familia familia, string DVH) { string sqlCommand = @"UPDATE permiso SET DVH=" + "'" + DVH + "'" + "," + "Eliminado=" + Convert.ToInt16(familia.Eliminado) + " WHERE Id=" + familia.Id; return(db.ExecuteSqlCommand(sqlCommand)); }
private string ConcatenarRegistro(Entity.Familia familia) { return(familia.Nombre + familia.Compuesto + familia.Eliminado + familia.Descripcion); }
public int ObtenerUsuariosAsignados(Entity.Familia familia, int idUsuario) { return(this.repository.ConsultarUsuariosAsignados(familia, idUsuario)); }