public void limpioInconsistencia(Cliente clienteActualizado) { //PRIMERO LIMPIO LAS IDENTIDADES DUPLICADAS RepositorioIdentidad repoIdentidad = new RepositorioIdentidad(); List <Identidad> identidadesDuplicadas = new List <Identidad>(); //Configuraciones de la consulta String connectionString = ConfigurationManager.AppSettings["BaseLocal"]; SqlConnection sqlConnection = new SqlConnection(connectionString); SqlCommand sqlCommand = new SqlCommand(); SqlDataReader reader; sqlCommand.Parameters.AddWithValue("@idIdentidad", clienteActualizado.getIdentidad().getIdIdentidad()); sqlCommand.Parameters.AddWithValue("@Mail", clienteActualizado.getIdentidad().getMail()); sqlCommand.Parameters.AddWithValue("@Num", clienteActualizado.getIdentidad().getNumeroDocumento()); sqlCommand.Parameters.AddWithValue("@Tipo", clienteActualizado.getIdentidad().getTipoDocumento()); sqlCommand.CommandType = CommandType.Text; sqlCommand.Connection = sqlConnection; sqlCommand.CommandText = @" SELECT identidad.idIdentidad FROM LOS_BORBOTONES.Identidad identidad WHERE identidad.idIdentidad <> @idIdentidad AND (identidad.TipoDocumento = @Tipo AND identidad.NumeroDocumento = @Num) UNION SELECT identidad.idIdentidad FROM LOS_BORBOTONES.Identidad identidad WHERE identidad.idIdentidad <> @idIdentidad AND (identidad.Mail = @Mail) "; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); while (reader.Read()) { identidadesDuplicadas.Add(repoIdentidad.getById(reader.GetInt32(reader.GetOrdinal("idIdentidad")))); } //Cierro Primera Consulta sqlConnection.Close(); identidadesDuplicadas.ForEach(identDup => repoIdentidad.limpiarDuplicadoMarcarInconsistente(identDup)); }
override public Cliente getById(int idCliente) { //Elementos del Cliente a devolver Cliente cliente; int idIdentidad = 0; Identidad identidad = null; RepositorioIdentidad repoIdentidad = new RepositorioIdentidad(); Boolean activo = false; List <Reserva> reservas = new List <Reserva>(); Boolean inconsistente = false; //Configuraciones de la consulta String connectionString = ConfigurationManager.AppSettings["BaseLocal"]; SqlConnection sqlConnection = new SqlConnection(connectionString); SqlCommand sqlCommand = new SqlCommand(); SqlDataReader reader; //Primera Consulta sqlCommand.Parameters.AddWithValue("@idCliente", idCliente); sqlCommand.CommandType = CommandType.Text; sqlCommand.Connection = sqlConnection; sqlCommand.CommandText = "SELECT * FROM LOS_BORBOTONES.Cliente WHERE idCliente = @idCliente"; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); while (reader.Read()) { idIdentidad = reader.GetInt32(reader.GetOrdinal("IdIdentidad")); identidad = repoIdentidad.getById(idIdentidad); activo = reader.GetBoolean(reader.GetOrdinal("Activo")); inconsistente = reader.GetBoolean(reader.GetOrdinal("Inconsistente")); } //Cierro Primera Consulta sqlConnection.Close(); //Si no encuentro elemento con ese ID tiro una excepción if (identidad.Equals(null)) { throw new NoExisteIDException("No existe cliente con el ID asociado"); } //Segunda Consulta sqlCommand.CommandText = @" SELECT r.idReserva FROM LOS_BORBOTONES.Reserva_X_Habitacion_X_Cliente rhc INNER JOIN LOS_BORBOTONES.Reserva r ON r.idReserva = rhc.idReserva WHERE rhc.idCliente = @idCliente "; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); //Colecto las reservas while (reader.Read()) { int idReserva = reader.GetInt32(reader.GetOrdinal("idReserva")); //RepositorioReserva repoReserva = new RepositorioReserva(); //reservas.Add(repoReserva.getById(idReserva)); } sqlConnection.Close(); //Armo el cliente completo cliente = new Cliente(idCliente, identidad, activo, reservas, inconsistente); return(cliente); }
override public Usuario getById(int idUsuario) { //Elementos del usuario a devolver Usuario usuario; Boolean activo = false; int idIdentidad = 0; Identidad identidad = null; RepositorioIdentidad repoIdentidad = new RepositorioIdentidad(); String username = ""; String password = ""; int intentosFallidosLogin = 0; List <Rol> roles = new List <Rol>(); List <Hotel> hoteles = new List <Hotel>(); //Configuraciones de la consulta String connectionString = ConfigurationManager.AppSettings["BaseLocal"]; SqlConnection sqlConnection = new SqlConnection(connectionString); SqlCommand sqlCommand = new SqlCommand(); SqlDataReader reader; //Primera Consulta sqlCommand.Parameters.AddWithValue("@idUsuario", idUsuario); sqlCommand.CommandType = CommandType.Text; sqlCommand.Connection = sqlConnection; sqlCommand.CommandText = "SELECT * FROM LOS_BORBOTONES.Usuario WHERE idUsuario = @idUsuario"; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); while (reader.Read()) { username = reader.GetString(reader.GetOrdinal("Username")); password = reader.GetString(reader.GetOrdinal("Password")); activo = reader.GetBoolean(reader.GetOrdinal("Activo")); intentosFallidosLogin = reader.GetInt32(reader.GetOrdinal("IntentosFallidosLogin")); idIdentidad = reader.GetInt32(reader.GetOrdinal("idIdentidad")); identidad = repoIdentidad.getById(idIdentidad); } //Cierro Primera Consulta sqlConnection.Close(); //Si no encuentro elemento con ese ID tiro una excepción if (username.Equals("")) { throw new NoExisteIDException("No existe usuario con el ID asociado"); } //Segunda Consulta para llenar los roles sqlCommand.CommandText = @" SELECT r.idRol FROM LOS_BORBOTONES.Rol_X_Usuario ru INNER JOIN LOS_BORBOTONES.Rol r ON r.idRol = ru.idRol WHERE ru.idUsuario = @idUsuario "; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); //Colecto los roles while (reader.Read()) { //lleno el rol con el getbyID int idRol = reader.GetInt32(reader.GetOrdinal("idRol")); RepositorioRol repoRol = new RepositorioRol(); roles.Add(repoRol.getById(idRol)); } sqlConnection.Close(); //Tercera Consulta para llenar los hoteles sqlCommand.CommandText = @" SELECT h.idHotel FROM LOS_BORBOTONES.Hotel_X_Usuario hu INNER JOIN LOS_BORBOTONES.Hotel h ON h.idHotel = hu.idHotel WHERE hu.idUsuario = @idUsuario "; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); //Colecto los hoteles while (reader.Read()) { //lleno el hotel con el getbyID int idHotel = reader.GetInt32(reader.GetOrdinal("idHotel")); RepositorioHotel repoHotel = new RepositorioHotel(); hoteles.Add(repoHotel.getById(idHotel)); } sqlConnection.Close(); //Armo el usuario completo usuario = new Usuario(idUsuario, identidad, username, password, intentosFallidosLogin, activo, roles, hoteles); return(usuario); }