private void SeleccionarOpcion(SistemaDeAparcamiento sistemaDeAparcamiento) { var indice = 1; _opciones.ForEach(nombre => sistemaDeAparcamiento.EscribirAConsola($"{indice++}) {nombre}")); sistemaDeAparcamiento.EscribirAConsola("Indique de cuál playa está egresando:"); while (IngresoUnaOpcionInvalida(sistemaDeAparcamiento)) { sistemaDeAparcamiento.EscribirAConsola("Opcion inválida, por favor vuelva a intentar: "); } _opcionSeleccionada--; }
public void Ejecutar(SistemaDeAparcamiento sistemaDeAparcamiento) { if (!sistemaDeAparcamiento.EstacionarEn(_nombre)) { sistemaDeAparcamiento.EscribirAConsola("No se puede estacionar en esta playa."); } else { sistemaDeAparcamiento.EscribirAConsola("Auto estacionado correctamente."); if (sistemaDeAparcamiento.HayEspacioDisponibleEn(_nombre)) { sistemaDeAparcamiento.EscribirAConsola($" Aún queda espacio para {sistemaDeAparcamiento.ObtenerEspacioDisponibleEn(_nombre)} vehículo/s."); } else { sistemaDeAparcamiento.EscribirAConsola(" Ya no hay más lugar disponible en esta playa."); } } }
public void Ejecutar(SistemaDeAparcamiento sistemaDeAparcamiento) { ObtenerOpcionesDelSubMenu(sistemaDeAparcamiento); if (NoHayOpcionesValidas()) { sistemaDeAparcamiento.EscribirAConsola("No hay vehículos estacionados en el playón."); } else { SeleccionarOpcion(sistemaDeAparcamiento); if (SeleccionoUnaPlaya()) { if (sistemaDeAparcamiento.EgresarDe(_opciones[_opcionSeleccionada])) { sistemaDeAparcamiento.EscribirAConsola($"Auto egresado correctamente de playa {_opciones[_opcionSeleccionada]}"); } else { sistemaDeAparcamiento.EscribirAConsola($"No es posible egresar un auto de la playa {_opciones[_opcionSeleccionada]}"); } } } }
private bool IngresoUnaOpcionInvalida(SistemaDeAparcamiento sistemaDeAparcamiento) => !int.TryParse(sistemaDeAparcamiento.LeerDeConsola(), out _opcionSeleccionada) || _opcionSeleccionada <1 || _opcionSeleccionada> _opciones.Count;
private List <string> ObtenerOpcionesDelSubMenu(SistemaDeAparcamiento sistemaDeAparcamiento) => _opciones = sistemaDeAparcamiento .ListarPlayas() .Where(playa => sistemaDeAparcamiento.HayAutosEstacionadosEn(playa)) .Concat(_opcionParaVolverAtras) .ToList();
public void Ejecutar(SistemaDeAparcamiento sistemaDeAparcamiento) => sistemaDeAparcamiento.MostrarMensajeFinal();
public void Ejecutar(SistemaDeAparcamiento sistemaDeAparcamiento) => sistemaDeAparcamiento.MostrarCantidadDeAutosEstacionados();