class ConsoleAdministration {

  /**
   * Program entry point.
   */
  public static void main(String[] args) {<FILL_FUNCTION_BODY>}

  private static void printMainMenu() {
    LOGGER.info("");
    LOGGER.info("### Lottery Administration Console ###");
    LOGGER.info("(1) Show all submitted tickets");
    LOGGER.info("(2) Perform lottery draw");
    LOGGER.info("(3) Reset lottery ticket database");
    LOGGER.info("(4) Exit");
  }

  private static String readString(Scanner scanner) {
    LOGGER.info("> ");
    return scanner.next();
  }
}

    MongoConnectionPropertiesLoader.load();
    var injector = Guice.createInjector(new LotteryModule());
    var administration = injector.getInstance(LotteryAdministration.class);
    var service = injector.getInstance(LotteryService.class);
    SampleData.submitTickets(service, 20);
    var consoleAdministration = new ConsoleAdministrationSrvImpl(administration, LOGGER);
    try (var scanner = new Scanner(System.in)) {
      var exit = false;
      while (!exit) {
        printMainMenu();
        var cmd = readString(scanner);
        if ("1".equals(cmd)) {
          consoleAdministration.getAllSubmittedTickets();
        } else if ("2".equals(cmd)) {
          consoleAdministration.performLottery();
        } else if ("3".equals(cmd)) {
          consoleAdministration.resetLottery();
        } else if ("4".equals(cmd)) {
          exit = true;
        } else {
          LOGGER.info("Unknown command: {}", cmd);
        }
      }
    }
  
<no_super_class>