public object execute(DbConnection connection, DbTransaction transaction) { var equipoVO = equipoTotal.Equipo; var estadioVO = equipoTotal.Estadio; var listaJugadores = equipoTotal.ListaJugadores; var listaEntrenadores = equipoTotal.ListaEntrenadoresCreate; var listaDirectivos = equipoTotal.ListaDirectivosCreate; //Creamos el EquipoVO if (equipoVO != null) { EquipoDAO equipoDAO = new EquipoDAO(); equipoVO = equipoDAO.create(connection, transaction, equipoVO); } //Creamos el EstadioVO if (estadioVO != null) { EstadioDAO estadioDAO = new EstadioDAO(); estadioVO = estadioDAO.create(connection, transaction, estadioVO); } //Creamos todos los jugadoresCOs if (listaJugadores != null) { HcoIntegranteDAO hcoIntegranteDAO = new HcoIntegranteDAO(); IntegranteDAO integranteDAO = new IntegranteDAO(); JugadorDAO jugadorDAO = new JugadorDAO(); foreach (JugadorCO jugadorCO in listaJugadores) { IntegranteVO integranteVO = jugadorCO.Integrante; int cod_Integrante = jugadorCO.cod_Integrante(); if (integranteDAO.Exists(connection, transaction, cod_Integrante)) { } else { integranteVO = integranteDAO.create(connection, transaction, jugadorCO.Integrante); cod_Integrante = integranteVO.Cod_Integrante; } HcoIntegranteVO hcoIntegranteCreado = null; foreach (HcoIntegranteVO hcoIntegrante in jugadorCO.ListaHcoIntegrantes) { hcoIntegrante.Cod_Integrante = cod_Integrante; hcoIntegranteCreado = hcoIntegranteDAO.create(connection, transaction, hcoIntegrante); } //linea anadida if (jugadorCO.GetType().Name.Equals("JugadorCO")) { (jugadorCO as JugadorCO).Jugador.Cod_Integrante = cod_Integrante; (jugadorCO as JugadorCO).Jugador.Version_Integrante = hcoIntegranteCreado.Version_Integrante; JugadorVO jugadorVO = jugadorDAO.create(connection, transaction, (jugadorCO as JugadorCO).Jugador); } } } //creamos todos los EntrenadorCOs if (listaEntrenadores != null) { foreach (EntrenadorCO entrenadorCO in listaEntrenadores) { IntegranteDAO integranteDAO = new IntegranteDAO(); EntrenadorDAO entrenadorDAO = new EntrenadorDAO(); HcoIntegranteDAO hcoIntegranteDAO = new HcoIntegranteDAO(); IntegranteVO integranteVO = entrenadorCO.Integrante; int cod_Integrante = entrenadorCO.Entrenador.Cod_Integrante; if (integranteDAO.Exists(connection, transaction, cod_Integrante)) { } else { integranteVO = integranteDAO.create(connection, transaction, entrenadorCO.Integrante); cod_Integrante = integranteVO.Cod_Integrante; } HcoIntegranteVO hcoIntegranteCreado = null; foreach (HcoIntegranteVO hcoIntegrante in entrenadorCO.ListaHcoIntegrantes) { hcoIntegrante.Cod_Integrante = cod_Integrante; hcoIntegranteCreado = hcoIntegranteDAO.create(connection, transaction, hcoIntegrante); } entrenadorCO.Entrenador.Cod_Integrante = cod_Integrante; //linea anadida if (entrenadorCO.GetType().Name.Equals("EntrenadorCO")) { (entrenadorCO as EntrenadorCO).Entrenador.Cod_Integrante = cod_Integrante; (entrenadorCO as EntrenadorCO).Entrenador.Version_Integrante = hcoIntegranteCreado.Version_Integrante; EntrenadorVO entrenadorVO = entrenadorDAO.create(connection, transaction, (entrenadorCO as EntrenadorCO).Entrenador); } } } //Creamos todos los DirectivoCOs if (listaDirectivos != null) { foreach (DirectivoCO directivoCO in listaDirectivos) { IntegranteDAO integranteDAO = new IntegranteDAO(); DirectivoDAO directivoDAO = new DirectivoDAO(); HcoIntegranteDAO hcoIntegranteDAO = new HcoIntegranteDAO(); IntegranteVO integranteVO = directivoCO.Integrante; int cod_Integrante = directivoCO.Directivo.Cod_Integrante; if (integranteDAO.Exists(connection, transaction, cod_Integrante)) { } else { integranteVO = integranteDAO.create(connection, transaction, directivoCO.Integrante); cod_Integrante = integranteVO.Cod_Integrante; } HcoIntegranteVO hcoIntegranteCreado = null; foreach (HcoIntegranteVO hcoIntegrante in directivoCO.ListaHcoIntegrantes) { hcoIntegrante.Cod_Integrante = cod_Integrante; hcoIntegranteCreado = hcoIntegranteDAO.create(connection, transaction, hcoIntegrante); } directivoCO.Directivo.Cod_Integrante = cod_Integrante; //linea anadida if (directivoCO.GetType().Name.Equals("DirectivoCO")) { (directivoCO as DirectivoCO).Directivo.Cod_Integrante = cod_Integrante; (directivoCO as DirectivoCO).Directivo.Version_Integrante = hcoIntegranteCreado.Version_Integrante; DirectivoVO directivoVO = directivoDAO.create(connection, transaction, (directivoCO as DirectivoCO).Directivo); } } } return(new EquipoTotalCO <JugadorCO>(equipoVO, listaJugadores, listaEntrenadores, null, listaDirectivos, null, estadioVO)); }