// File: Cliente.java
// Time-stamp: "2003-03-18 18:02:36 calvanes"
// Scopo: soluzione esercizio 11C

import java.io.*;

public class Cliente {

  private static final String menu =
    "Scegli un'opzione:\n" +
    " e: estrai la prossima prenotazione\n" +
    " r: rinuncia per una prenotazione\n" +
    " i: inserisci una nuova prenotazione\n" +
    " t: stampa il tempo di attesa per una prenotazione\n" +
    " s: stampa la lista di prenotazioni\n" +
    " f: fine\n";


  public static void main (String[] args) throws IOException{
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Immetti il nome di un file: ");
    String nomefile = br.readLine();
    BufferedReader brf = new BufferedReader(new FileReader(nomefile));

    Sportello sp = new Sportello();
    String nome = brf.readLine();
    while (nome != null) {
      sp.prenota(nome);
      nome = brf.readLine();
    }
    brf.close();

    System.out.println(sp);

    Prenotazione p;
    System.out.println(menu);
    char scelta = br.readLine().charAt(0);
    while (scelta != 'f') {
      try {
        switch (scelta) {
        case 'e':
          System.out.println(sp.estrai());
          break;

        case 'r':
          System.out.print("Numero della prenotazione a cui rinunciare: ");
          sp.rinuncia(Integer.parseInt(br.readLine()));
          break;

        case 'i':
          System.out.print("Nome della persona da prenotare: ");
          nome = br.readLine();
          System.out.println(nome + " inserito con numero d'ordine: " +
                             sp.prenota(nome));
          break;

        case 't':
          System.out.print("Numero della prenotazione: ");
          System.out.println("Tempo di attesa: " +
                             sp.tempoAttesa(Integer.parseInt(br.readLine())));
          break;

        case 's':
          System.out.println("Lista di prenotazioni:\n" + sp);
          break;
        } // switch (scelta)
      }
      catch (EccezioneSportello e) {
        System.out.println(e.getMessage());
      }
      catch (NumberFormatException e) {
        System.out.println("Errore: immetti un intero");
      }

      System.out.println(menu);
      scelta = br.readLine().charAt(0);
    } // while (scelta != 'f') 
  }
}
