/// <summary>
        /// Genera una venta manual.
        /// </summary>
        public void GenerarUnaVenta()
        {
            Espectaculo espectaculoSeleccionado = (Espectaculo)this.comboBox1.SelectedItem;

            try
            {
                EntradaVentanilla entrada = new EntradaVentanilla(espectaculoSeleccionado.Nombre, espectaculoSeleccionado.Sala, espectaculoSeleccionado.Dia, this.labelButaca.Text, this.textBox1.Text, espectaculoSeleccionado.Costo);
                if (this.boleteria.ConfirmarEntrada(entrada))
                {
                    foreach (Sala s in this.boleteria.Salas)
                    {
                        if (espectaculoSeleccionado == s)
                        {
                            if (s.OcuparButaca(this.labelButaca.Text))
                            {
                                this.richTextBox1.Text += this.boleteria.ImprimirEntradaBreve(entrada) + "\n";
                                this.boleteria.GuardarEntrada(entrada.MostrarDatos());
                                Thread.Sleep(50);
                                this.boleteria.GuardarEntradaEnBD(entrada);
                                MessageBox.Show("Se ha vendido una entrada");
                                break;
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Se ha cancelado la venta");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 /// <summary>
 /// Genera ventas electrónicas aleatorias.
 /// </summary>
 private void GenerarVentasAleatorias()
 {
     string[] nombre = { "lucas", "nahuel", "analia", "roberto" };
     while (true)
     {
         try
         {
             Thread.Sleep(new Random().Next(25, 30));
             Espectaculo       espectaculoRandom = (Espectaculo)this.comboBox1.Items[new Random().Next(1, this.boleteria.Espectaculos.Count)];
             EntradaVentanilla entrada           = new EntradaVentanilla(espectaculoRandom.Nombre, espectaculoRandom.Sala, espectaculoRandom.Dia, this.boleteria.BuscarButacaLibre(espectaculoRandom), nombre[new Random().Next(0, nombre.Length)], espectaculoRandom.Costo);
             if (this.boleteria.ConfirmarEntrada(entrada))
             {
                 foreach (Sala s in this.boleteria.Salas)
                 {
                     if (espectaculoRandom == s)
                     {
                         if (s.OcuparButaca(entrada.Butaca))
                         {
                             this.boleteria.GuardarEntrada(entrada.MostrarDatos());
                             Thread.Sleep(50);
                             this.boleteria.GuardarEntradaEnBD(entrada);
                             break;
                         }
                     }
                 }
             }
         }
         catch (Exception)
         {
             this.InformarErrorVentanilla();
         }
     }
 }
Exemplo n.º 3
0
            public static Publicacion parsearPublicacionDelReader(SqlDataReader reader)
            {
                Publicacion publicacion;

                try
                {
                    publicacion = new Publicacion();

                    publicacion.id = (int)(reader.IsDBNull(0) ? null : (Nullable <int>)reader.GetSqlDecimal(0));
                    Espectaculo espesctaculo = new Espectaculo();

                    espesctaculo.id         = (int)(reader.IsDBNull(1) ? null : (Nullable <int>)reader.GetSqlDecimal(1));
                    publicacion.espectaculo = espesctaculo;

                    GradoPublicacion grado = new GradoPublicacion();
                    grado.id = (int)(reader.IsDBNull(2) ? null : (Nullable <int>)reader.GetSqlDecimal(2));
                    publicacion.gradoPublicacion = grado;

                    publicacion.fechaPublicacion = reader.IsDBNull(3) ? null : (Nullable <DateTime>)reader.GetSqlDateTime(3);
                    publicacion.fechaEvento      = reader.IsDBNull(4) ? null : (Nullable <DateTime>)reader.GetSqlDateTime(4);
                    publicacion.estado           = reader.IsDBNull(5) ? null : reader.GetSqlString(5).ToString();

                    return(publicacion);
                }
                catch (Exception e)
                {
                    throw new ObjectParseException("Error al parsear publicacion");
                }
            }
        protected void GridViewEspect_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "VerDetalles")
            {
                int indiceFila = Convert.ToInt32(e.CommandArgument);

                GridViewRow lafila  = this.GridViewEspect.Rows[indiceFila];
                TableCell   laCelda = lafila.Cells[0];

                string idEspectaculo = laCelda.Text.ToString();
                int    idEsp         = 0;
                int.TryParse(idEspectaculo, out idEsp);

                especSeleccionado = Fachada.BuscarEspectaculoPorID(idEsp);

                if (especSeleccionado != null)
                {
                    if (especSeleccionado.Fecha > DateTime.Today)
                    {
                        List <Espectaculo> listaAux = new List <Espectaculo>();
                        listaAux.Add(especSeleccionado);

                        GridViewDetalles.Visible    = true;
                        GridViewDetalles.DataSource = listaAux;
                        GridViewDetalles.DataBind();

                        btReservar.Visible = true;
                    }
                    else
                    {
                        lblMensajeFiltrado.Text = "El espectaculo seleccionado ya fue realizado";
                    }
                }
            }
        }
 /// <summary>
 /// Genera ventas aleatorias.
 /// </summary>
 private void GenerarVentasAleatoriasElectronicas()
 {
     string[] nombre = { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" };
     while (true)
     {
         Thread.Sleep(new Random().Next(25, 30));
         try
         {
             Espectaculo        espectaculoRandom = this.boleteria.Espectaculos[new Random().Next(1, this.boleteria.Espectaculos.Count)];
             EntradaElectronica entrada           = new EntradaElectronica(espectaculoRandom.Nombre, espectaculoRandom.Sala, espectaculoRandom.Dia, this.boleteria.BuscarButacaLibre(espectaculoRandom), espectaculoRandom.Costo, nombre[new Random().Next(0, nombre.Length)]);
             if (this.boleteria.ConfirmarEntrada(entrada))
             {
                 foreach (Sala s in this.boleteria.Salas)
                 {
                     if (espectaculoRandom == s)
                     {
                         if (s.OcuparButaca(entrada.Butaca))
                         {
                             this.boleteria.GuardarEntradaEnBD(entrada);
                             break;
                         }
                     }
                 }
             }
         }
         catch (Exception)
         {
             this.InformarErrorEletronico();
         }
     }
 }
Exemplo n.º 6
0
            public static Espectaculo parseEspectaculoFromReader(SqlDataReader reader)
            {
                Espectaculo espectaculo = null;

                try
                {
                    espectaculo    = new Espectaculo();
                    espectaculo.id = reader.IsDBNull(0) ? null : (Nullable <int>)reader.GetSqlDecimal(0);

                    Empresa empresa = new Empresa();
                    empresa.id          = reader.IsDBNull(1) ? null : (Nullable <int>)reader.GetSqlDecimal(1);
                    espectaculo.empresa = empresa;

                    Rubro rubro = new Rubro();
                    rubro.id          = reader.IsDBNull(2) ? null : (Nullable <int>)reader.GetSqlDecimal(2);
                    espectaculo.rubro = rubro;

                    espectaculo.descripcion = reader.IsDBNull(3) ? null : reader.GetSqlString(3).ToString();
                    espectaculo.direccion   = reader.IsDBNull(4) ? null : reader.GetSqlString(4).ToString();

                    return(espectaculo);
                }
                catch (Exception e)
                {
                    throw new ObjectParseException("Error al obtener Espectaculo");
                }
            }
Exemplo n.º 7
0
        public int insertarEspectaculo(Espectaculo espec, SqlTransaction trans)
        {
            string query = "[TheBigBangQuery].[InsertarEspectaculo]";

            try
            {
                SqlCommand command = new SqlCommand(query);

                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.CommandText = query;
                command.Transaction = trans;

                SqlParameter outId = new SqlParameter("@newId", SqlDbType.Decimal)
                {
                    Direction = ParameterDirection.Output
                };

                command.Parameters.AddWithValue("@empresa", espec.empresa == null ?  "0" : espec.empresa.id.ToString());
                command.Parameters.AddWithValue("@rubro", espec.rubro.id);
                command.Parameters.AddWithValue("@descripcion", espec.descripcion);
                command.Parameters.AddWithValue("@direccion", espec.direccion);
                command.Parameters.Add(outId);


                DatabaseConection.executeNoParamFunction(command);

                var returnV = outId.Value;

                return(int.Parse(returnV.ToString()));
            }
            catch (Exception e) {
                return(-1);
            }
        }
        public static List <Sector> getSectoresDeEspectaculo(Espectaculo espectaculo)
        {
            List <Sector> sectores = new List <Sector>();
            string        sql      = "SELECT COUNT(distinct [Ubic_Fila]) filas, COUNT(distinct [Ubic_Asiento]) asientos, " +
                                     "[Ubic_Precio], Ubicaciones.Ubic_Tipo_Cod, Ubic_Tipo_Descr " +
                                     "FROM [GD2C2018].[GESTION_DE_GATOS].[Ubicaciones] " +
                                     "JOIN [GD2C2018].[GESTION_DE_GATOS].[Ubicaciones_Tipo] " +
                                     "ON Ubicaciones.Ubic_Tipo_Cod = Ubicaciones_Tipo.Ubic_Tipo_Cod " +
                                     "WHERE Ubic_Espec_Cod = " + espectaculo.Id +
                                     "GROUP BY Ubic_Precio, Ubicaciones.Ubic_Tipo_Cod, Ubic_Tipo_Descr";
            SqlDataReader lector = DataBase.GetDataReader(sql, "T", new List <SqlParameter>());

            if (lector.HasRows)
            {
                while (lector.Read())
                {
                    sectores.Add(new Sector(
                                     Convert.ToInt32(lector[0]),
                                     Convert.ToInt32(lector[1]),
                                     new TipoUbicacion(Convert.ToInt32(lector[3]), lector[4].ToString()),
                                     Convert.ToDouble(lector[2])));
                }
            }
            return(sectores);
        }
Exemplo n.º 9
0
        private Compra parsearCompraDelReader(SqlDataReader reader)
        {
            Compra compra = new Compra();

            compra.id          = (int)reader.GetSqlDecimal(0);
            compra.fechaCompra = reader.IsDBNull(1) ? Generals.getFechaMinima() : (DateTime)reader.GetSqlDateTime(1);
            string        medioPago = reader.IsDBNull(2) ? null : reader.GetSqlString(2).ToString();
            List <string> medios    = medioPago.Split('/').ToList();
            Tarjeta       tarjeta   = new Tarjeta();

            if (medios.Count == 3)
            {
                tarjeta.titular     = medios[0];
                tarjeta.numero      = medios[1];
                tarjeta.vencimiento = medios[2];
            }
            else
            {
                tarjeta.numero = medioPago;
            }
            compra.medioPago = tarjeta;
            compra.cantidad  = reader.IsDBNull(3) ? 0 : (int)reader.GetSqlDecimal(3);
            compra.total     = reader.IsDBNull(4) ? 0 : (float)reader.GetSqlDecimal(4).ToDouble();
            Publicacion publi = new Publicacion();

            publi.id = reader.IsDBNull(5) ? -1 : (int)reader.GetSqlDecimal(5);
            Espectaculo espe = new Espectaculo();

            espe.descripcion   = reader.IsDBNull(6) ? null : reader.GetSqlString(6).ToString();
            publi.espectaculo  = espe;
            compra.publicacion = publi;


            return(compra);
        }
        public static void eliminarSectoresDePublicacion(Espectaculo espectaculo)
        {
            string sql = "DELETE FROM GESTION_DE_GATOS.Ubicaciones WHERE Ubic_Espec_Cod = " + espectaculo.Id;
            List <SqlParameter> parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("@ubic_espec_codigo", espectaculo.Id));
            DataBase.ejecutarSP("sp_eliminar_ubicaciones", parameters);
        }
 public SeleccionUbicacionForm(Espectaculo espectaculo)
 {
     InitializeComponent();
     espectaculoItem     = espectaculo;
     lblDescripcion.Text = espectaculo.descripcion;
     this.cargarTipoUbicacionCmb(espectaculo);
     this.cargarMediosPagoCmb();
 }
Exemplo n.º 12
0
        public ActionResult DeleteConfirmed(int id)
        {
            Espectaculo espectaculo = db.Espectaculos.Find(id);

            db.Espectaculos.Remove(espectaculo);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public static List <SqlParameter> GenerarParametrosEspectaculo(Espectaculo espectaculo, string username)
        {
            List <SqlParameter> parametros = new List <SqlParameter>();

            parametros.Add(new SqlParameter("@Descripcion", espectaculo.Descripcion));
            parametros.Add(new SqlParameter("@Id", espectaculo.Id));
            parametros.Add(new SqlParameter("@Descripcion", espectaculo.Descripcion));
            return(parametros);
        }
Exemplo n.º 14
0
        public ActionResult Comprar(eCompra compra)
        {
            if (ModelState.IsValid)
            {
                Espectaculo eOrig = db.Espectaculos.Find(compra.eId);

                if (compra.tipoEnt == "G")
                {
                    for (int i = 1; i <= compra.cant; i++)
                    {
                        db.Entradas.Add(
                            new Entrada
                        {
                            Espectaculo = eOrig,
                            Estado      = "Comprada",
                            FechaVenta  = DateTime.Now,
                            NumAsiento  = compra.asiento,
                            NumFila     = compra.fila,
                            Precio      = eOrig.PrecioEGen,
                            UserName    = compra.username
                        });
                    }

                    eOrig.CantGen         = eOrig.CantGen - compra.cant; //a la cantidad original de entradas generales, le resto las que vendi
                    db.Entry(eOrig).State = EntityState.Modified;
                }
                else //si es una entrada numerada
                {
                    Entrada entrada = eOrig.Entradas.SingleOrDefault(e => e.NumFila == compra.fila && e.NumAsiento == compra.asiento);

                    if (entrada != null)    // si la entrada ya existe, le muestro la misma view para que cargue otra, todavia no se implemento una validacion js en la misma vista para evitar este paso
                    {
                        return(View(compra));
                    }
                    else // si la entrada esta disponible
                    {
                        db.Entradas.Add(
                            new Entrada
                        {
                            Espectaculo = eOrig,
                            Estado      = "Comprada",
                            FechaVenta  = DateTime.Now,
                            NumAsiento  = compra.asiento,
                            NumFila     = compra.fila,
                            Precio      = eOrig.PrecioENum,
                            UserName    = compra.username
                        });

                        db.Entry(eOrig).State = EntityState.Modified;
                    }
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(compra));
        }
Exemplo n.º 15
0
        //
        // GET: /Espectaculo/Details/5

        public ActionResult Details(int id = 0)
        {
            Espectaculo espectaculo = db.Espectaculos.Find(id);

            if (espectaculo == null)
            {
                return(HttpNotFound());
            }
            return(View(espectaculo));
        }
        public static void CreateEspectaculo(Espectaculo espectaculo)
        {
            List <SqlParameter> parametros = new List <SqlParameter>();

            parametros.Add(new SqlParameter("@descripcion", espectaculo.Descripcion));
            parametros.Add(new SqlParameter("@rubroId", espectaculo.Rubro.Codigo));
            parametros.Add(new SqlParameter("@empresaId", espectaculo.Empresa.Cuit));
            parametros.Add(new SqlParameter("@domicilioId", espectaculo.Empresa.Domicilio.Id));
            DataBase.ejecutarSP("[dbo].[sp.crear_espectaculo]", parametros);
        }
Exemplo n.º 17
0
 public EditarPublicacionForm(Publicacion publicacion, GD2C2018Entities context)
 {
     Context = context;
     InitializeComponent();
     Publicacion = publicacion;
     AgregarEventosValidacion();
     Espectaculo = Context.Espectaculo.Single(e => e.Espectaculo_Cod == publicacion.Publicacion_Espectaculo);
     CargarComboBox();
     CargarDatos();
 }
        public static Espectaculo ReadEspectaculoFromDb(int especId)
        {
            SqlDataReader            lector      = DataBase.GetDataReader("SELECT * FROM GESTION_DE_GATOS.Espectaculos WHERE Espec_Cod = " + especId, "T", new List <SqlParameter>());
            Dictionary <string, int> camposEspec = Ordinales.Espectaculo;

            if (lector.HasRows && lector.Read())
            {
                return(Espectaculo.build(lector));
            }
            throw new EspectaculoNoEncontradoException(especId);
        }
Exemplo n.º 19
0
 public ActionResult Edit(Espectaculo espectaculo)
 {
     if (ModelState.IsValid)
     {
         db.Entry(espectaculo).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.LugarId   = new SelectList(db.Lugares, "LugarId", "Nombre", espectaculo.LugarId);
     ViewBag.ArtistaId = new SelectList(db.Artistas, "ArtistaId", "Nombre", espectaculo.ArtistaId);
     return(View(espectaculo));
 }
        private void cargarUbicacionCmb(Espectaculo espectaculo, int idTipoUbic)
        {
            List <Ubicacion> ubicaciones = new List <Ubicacion>();
            string           feDesde     = (espectaculo.fecha_espectaculo).ToString("dd-MM-yyyy");

            ubicaciones = ubicacionMngr.getUbicacionesEspectaculo(espectaculo.id_espectaculo, feDesde,
                                                                  espectaculo.hora_espectaculo, idTipoUbic);

            cmbUbicacion.DisplayMember = "descripcion";
            cmbUbicacion.ValueMember   = "id_ubicacion";
            cmbUbicacion.DataSource    = ubicaciones;
        }
        private void cargarTipoUbicacionCmb(Espectaculo espectaculo)
        {
            List <Tipo_Ubicacion> tpUbicaciones = new List <Tipo_Ubicacion>();
            string feDesde = (espectaculo.fecha_espectaculo).ToString("dd-MM-yyyy");

            tpUbicaciones = tpUbicMngr.getTiposUbicacionXEspec(espectaculo.id_espectaculo, feDesde,
                                                               espectaculo.hora_espectaculo);

            cmbTipoUbicacion.DisplayMember = "descripcion";
            cmbTipoUbicacion.ValueMember   = "id_tipo_ubicacion";
            cmbTipoUbicacion.DataSource    = tpUbicaciones;
        }
Exemplo n.º 22
0
        //
        // GET: /Espectaculo/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Espectaculo espectaculo = db.Espectaculos.Find(id);

            if (espectaculo == null)
            {
                return(HttpNotFound());
            }
            ViewBag.LugarId   = new SelectList(db.Lugares, "LugarId", "Nombre", espectaculo.LugarId);
            ViewBag.ArtistaId = new SelectList(db.Artistas, "ArtistaId", "Nombre", espectaculo.ArtistaId);
            return(View(espectaculo));
        }
Exemplo n.º 23
0
 private Espectaculo getEspectaculoDeUi(Espectaculo espectaculoOriginal)
 {
     return(new Espectaculo(
                espectaculoOriginal.Id,
                txtEspectTitulo.Text,
                dtpRealizacion.Value,
                dtpVencimiento.Value,
                (Rubro)cmbRubro.SelectedItem,
                espectaculoOriginal.Empresa,
                domicilioElegido,
                !chkEspecDeshabilitado.Checked));
 }
Exemplo n.º 24
0
        public ActionResult Create(Espectaculo espectaculo)
        {
            if (ModelState.IsValid)
            {
                db.Espectaculos.Add(espectaculo);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.LugarId   = new SelectList(db.Lugares, "LugarId", "Nombre", espectaculo.LugarId);
            ViewBag.ArtistaId = new SelectList(db.Artistas, "ArtistaId", "Nombre", espectaculo.ArtistaId);
            return(View(espectaculo));
        }
        public static void actualizar(Espectaculo espectaculo)
        {
            List <SqlParameter> parametros = new List <SqlParameter>();

            parametros.Add(new SqlParameter("@espec_cod", espectaculo.Id));
            parametros.Add(new SqlParameter("@espec_desc", espectaculo.Descripcion));
            parametros.Add(new SqlParameter("@espec_fecha", espectaculo.FechaOcurrencia));
            parametros.Add(new SqlParameter("@espec_fecha_vencimiento", espectaculo.FechaVencimiento));
            parametros.Add(new SqlParameter("@espec_rubro_codigo", espectaculo.Rubro.Codigo));
            parametros.Add(new SqlParameter("@espec_emp_cuit", espectaculo.Empresa.Cuit));
            parametros.Add(new SqlParameter("@espec_dom_id", espectaculo.Empresa.Domicilio.Id));
            parametros.Add(new SqlParameter("@espec_estado", espectaculo.Habilitado ? 1 : 0));
            DataBase.ejecutarSP("[dbo].[sp_actualizar_espectaculo]", parametros);
        }
Exemplo n.º 26
0
        private Espectaculo GenerarEspectaculo()
        {
            var rubro       = context.Rubro.Single(r => r.Rubro_Descripcion == boxRubro.Text);
            var espectaculo = new Espectaculo
            {
                Espectaculo_Descripcion = boxDescripcion.Text,
                Espectaculo_Direccion   = boxDireccion.Text,
                Espectaculo_Rubro       = rubro.Rubro_ID
            };

            context.Entry(espectaculo).State = System.Data.Entity.EntityState.Added;
            context.SaveChanges();
            return(espectaculo);
        }
        protected void btReserva_Click(object sender, EventArgs e)
        {
            Espectaculo especSel = (Espectaculo)Session["especSeleccionado"];

            Usuario usuAux = (Usuario)Session["usuario"];

            string cantidad = tbCantEntradas.Text;


            //Si los datos no son nulos
            if (especSel != null && usuAux != null && !string.IsNullOrEmpty(cantidad))
            {
                if (Herramientas.esNumero(cantidad))
                {
                    //Verifico que la cantidad sea mayor a 0
                    int cant = int.Parse(cantidad);
                    if (cant > 0)
                    {
                        //Si hay lugares disponibles
                        if (Controladora.Fachada.CantidadDisponible(especSel, cant))
                        {
                            lblCantEntradas.Text = "";
                            lblMensaje.Text      = "";
                            //Si se da de alta correctamente
                            if (Controladora.Fachada.AltaReserva(especSel, usuAux, cant))
                            {
                                lblMensaje.Text = "Reserva exitosa";
                            }
                            //Si no se pudo dar de alta
                            else
                            {
                                lblMensaje.Text = "";
                                lblMensaje.Text = "La reserva no se pudo realizar verifique los datos";
                            }
                        }
                        //Si no hay tantos lugares disponibles como los ingresados
                        else
                        {
                            lblMensaje.Text      = "";
                            lblCantEntradas.Text = "No se encuentra disponible esa cantidad";
                        }
                    }
                    else
                    {
                        lblCantEntradas.Text = "Ingreso cantidad 0";
                    }
                }
            }
        }
Exemplo n.º 28
0
        private void cargarEspectaculosCmb()
        {
            List <Espectaculo> espectaculos = new List <Espectaculo>();

            espectaculos = especMngr.getEspectaculosActivos();
            Espectaculo itemDef = new Espectaculo();

            itemDef.id_espectaculo = 0;
            itemDef.descripcion    = "Seleccionar";
            espectaculos.Insert(0, itemDef);

            cmbEspectaculo.DisplayMember = "descripcion";
            cmbEspectaculo.ValueMember   = "id_espectaculo";
            cmbEspectaculo.DataSource    = espectaculos;
        }
        public static void crearUbicacionesPorEspectaculo(List <Sector> sectores, Espectaculo espectaculo)
        {
            List <SqlParameter> parametros = new List <SqlParameter>();

            foreach (Sector sector in sectores)
            {
                parametros.Add(new SqlParameter("@ubic_tipo", sector.TipoUbicacion.Id));
                parametros.Add(new SqlParameter("@ubic_precio", sector.Precio));
                parametros.Add(new SqlParameter("@ubic_espec_codigo", espectaculo.Id));
                parametros.Add(new SqlParameter("@cnt_filas", sector.CantidadFilas));
                parametros.Add(new SqlParameter("@cnt_asientos", sector.CantidadAsientos));
                DataBase.ejecutarSP("sp_crear_ubicaciones", parametros);
                parametros.Clear();
            }
        }
Exemplo n.º 30
0
        internal Espectaculo getEspectaculoPorID(int idEspectaculo)
        {
            DataTable resultTable = SQLManager.ejecutarDataTableStoreProcedure("LOOPP.SP_GetEspectaculoPorId",
                                                                               SQLArgumentosManager.nuevoParametro("@idEspectaculo", idEspectaculo));
            List <Espectaculo> espectaculos = new List <Espectaculo>();

            if (resultTable != null && resultTable.Rows != null)
            {
                foreach (DataRow row in resultTable.Rows)
                {
                    Espectaculo espectaculo = BuildEspectaculo(row);
                    espectaculos.Add(espectaculo);
                }
            }
            return(espectaculos.ElementAt(0));
        }