/// <summary> /// Inserta toda la data asociada a un lugar turistico en la base de datos. /// </summary> /// <param name="lugarTuristico">Objeto lugar turistico con todos los campos obligatorios llenos</param> /// <returns>(int) ID del Lugar Turistico</returns> /// <exception cref="BaseDeDatosExcepcion"></exception> /// <exception cref="CasteoInvalidoExcepcion"></exception> /// <exception cref="ReferenciaNulaExcepcion"></exception> /// <exception cref="ArchivoExcepcion"></exception> public int InsertarLugarTuristico(LugarTuristico lugarTuristico) { try { conexion.Conectar(); lugarTuristico.Id = conexion.InsertarLugarTuristico(lugarTuristico); foreach (Horario elemento in lugarTuristico.Horario) { conexion.InsertarHorario(elemento, lugarTuristico.Id); } foreach (Foto elemento in lugarTuristico.Foto) { conexion.InsertarFoto(elemento, lugarTuristico.Id); } foreach (Actividad elemento in lugarTuristico.Actividad) { conexion.InsertarActividad(elemento, lugarTuristico.Id); } foreach (Categoria elemento in lugarTuristico.Categoria) { conexion.InsertarCategoriaLugarTuristico(lugarTuristico.Id, elemento.Id); } foreach (Categoria elemento in lugarTuristico.SubCategoria) { conexion.InsertarCategoriaLugarTuristico(lugarTuristico.Id, elemento.Id); } conexion.Desconectar(); return(lugarTuristico.Id); } catch (BaseDeDatosExcepcion e) { e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name); throw e; } catch (CasteoInvalidoExcepcion e) { e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name); throw e; } catch (ReferenciaNulaExcepcion e) { e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name); throw e; } catch (ArchivoExcepcion e) { throw e; } }