public Sala(int n, int x, int y) { Numero = n; Asientos = new Asiento[x, y]; for (int i = 0; i < Asientos.GetLength(0); i++) { for (int j = 0; j < Asientos.GetLength(1); j++) { Asientos[i, j] = new Asiento(i, j); } } }
static void PedirFilaColumnaDeAsiento(Funcion funcion, DB db) { /*-------Validacion Min y Max de input Fila y Col-------*/ // HORRIBLE Console.WriteLine("Ingrese Fila:"); if (!Int32.TryParse(Console.ReadLine(), out int fila)) { Console.WriteLine("Seleccion Incorrecta"); PedirFilaColumnaDeAsiento(funcion, db); } if (fila == -1) { Reiniciar(db); } Console.WriteLine("Ingrese Columna:"); if (!Int32.TryParse(Console.ReadLine(), out int columna)) { Console.WriteLine("Seleccion Incorrecta"); PedirFilaColumnaDeAsiento(funcion, db); } if (columna == -1) { Reiniciar(db); } if (fila < -1 || fila > funcion.Sala.Asientos.GetLength(1) + 1 || columna < -1 || columna > funcion.Sala.Asientos.GetLength(0)) { Console.WriteLine("Seleccion Incorrecta"); PedirFilaColumnaDeAsiento(funcion, db); } /*-------Fin Validacion Min y Max de input Fila y Col-------*/ Asiento AsientoNuevo = funcion.Sala.Asientos[fila, columna]; if (!funcion.IntentarOcuparAsiento(AsientoNuevo)) { Console.WriteLine("Asiento Ocupado"); PedirFilaColumnaDeAsiento(funcion, db); } GenerarEntrada(AsientoNuevo, funcion, db); }
public bool IntentarOcuparAsiento(Asiento a) { if (Estado_Asientos[a] == EstadoAsiento.Ocupado) { return(false); } if (Estado_Asientos[a] == EstadoAsiento.Libre) { Estado_Asientos[a] = EstadoAsiento.Ocupado; return(true); } if (this.Sala.Asientos[a.Fila, a.Columna] != a) { throw new Exception("El asiento no se corresponde con la sala"); } else { throw new NullReferenceException(); } }
static bool EsVip(Funcion f, Asiento a) { return(f.Sala.Asientos[a.Fila, a.Columna].EsVip); }
public Entrada(Funcion f, Asiento a) { Funcion = f; Asiento = a; FechaEmision = DateTime.Now; }