public Boolean tieneAlgunaPatenteSinOtraAsignacion(Familia familia) { try { List <Patente> lista = new List <Patente>(); string query = "select P.* from patente P inner join familia_patente FP on FP.id_familia=@id_familia and FP.id_patente=p.id"; Dictionary <string, object> paramList = new Dictionary <string, object>(); paramList.Add("@id_familia", familia.Id); DataTable list = sqlHelper.ExecuteQueryWithParamsRetDataTable(query, paramList); foreach (DataRow row in list.Rows) { Patente patente = new Patente { Id = Convert.ToInt32(row["id"]), Nombre = Convert.ToString(row["nombre"]) }; lista.Add(patente); } foreach (Patente patente in lista) { query = "select count(*) from (select * from usuario_patente where id_patente=" + patente.Id + " union " + "select * from usuario_familia " + "where id_familia in (" + "select distinct id_familia from familia_patente where id_patente != " + patente.Id + " and id_familia!=" + familia.Id + ")) UFC"; if (sqlHelper.ExecuteScalar(query) < 1) { return(true); } } return(false); } catch (ProEasyException) { throw; } catch (Exception ex) { throw new ProEasyException(1, ex.Message); } }
public void desasignarPatente(Familia familia, Patente patente) { try { string query = "DELLETE FROM FAMILIA_PATENTE WHERE id_familia = @id_familia AND id_patente = @id_patente"; Dictionary <string, object> paramList = new Dictionary <string, object>(); paramList.Add("@id_familia", familia.Id); paramList.Add("@id_patente", patente.Id); sqlHelper.ExecuteQueryWithParams(query, paramList); } catch (ProEasyException) { throw; } catch (Exception ex) { throw new ProEasyException(1, ex.Message); } }
public void asignarPatente(Familia familia, Patente patente) { try { string query = "INSERT INTO FAMILIA_PATENTE (id_familia,id_patente,dvh) VALUES (@id_familia,@id_patente,@dvh)"; Dictionary <string, object> paramList = new Dictionary <string, object>(); paramList.Add("@id_familia", familia.Id); paramList.Add("@id_patente", patente.Id); paramList.Add("@dvh", null); sqlHelper.ExecuteQueryWithParams(query, paramList); } catch (ProEasyException) { throw; } catch (Exception ex) { throw new ProEasyException(1, ex.Message); } }
public bool tieneFamiliasRelacionadasConUsuarios(Patente p, long idFamilia) { string q = "select count(*) from familia F left join familia_patente FP on FP.id_familia = F.id and FP.id_patente = " + p.Id + " where F.id != " + idFamilia; return(sqlHelper.ExecuteScalar(q) > 0); }
public List <Componente> Listar(string familia) { Abrir(); var where = "is NULL"; if (!String.IsNullOrEmpty(familia)) { where = familia; } var consulta = $@"with recursivo as ( select sp2.Id_padre, sp2.Id_hijo from PermisoPermiso SP2 where sp2.Id_padre {where} --acá se va variando la familia que busco UNION ALL select sp.Id_padre, sp.Id_hijo from PermisoPermiso sp inner join recursivo r on r.Id_hijo= sp.Id_padre ) select r.Id_padre,r.Id_hijo,p.Id_permiso,p.Nombre, p.Tipo from recursivo r inner join permiso p on r.Id_hijo = p.Id_permiso "; var reader = acceso.Read(consulta); var lista = new List <Componente>(); while (reader.Read()) { int id_padre = 0; if (reader["Id_padre"] != DBNull.Value) { id_padre = reader.GetInt32(reader.GetOrdinal("Id_padre")); } var id = reader.GetInt32(reader.GetOrdinal("Id_permiso")); var nombre = reader.GetString(reader.GetOrdinal("Nombre")); var patente = reader.GetString(reader.GetOrdinal("Tipo")); Componente c; if (patente == "familia") { c = new Familia(); } else { c = new Patente(); } c.ID = id; c.Nombre = nombre; var padre = GetComponent(id_padre, lista); if (padre == null) { lista.Add(c); } else { padre.AgregarHijos(c); } } Cerrar(); return(lista); }