package controller.console.administrateur;

import java.util.InputMismatchException;
import java.util.Scanner;

import view.console.administrateur.Module_Gestion;
import controller.Database;

import model.list.HandlerModules;

public class Module_GestionControle {
	private HandlerModules hMod;
	private Scanner sc;
	private int input;
	
	public Module_GestionControle(Database d) {
		this.hMod = d.getModules();
		boolean done = false;
		sc = new Scanner(System.in);
		
		while (!done) {
			try {
				Module_Gestion.trigger();
				this.askInput();
			} catch (InputMismatchException e) {
				sc.nextLine();
				Module_Gestion.fail();
			}
			if (input == 0) { done = true;
			} else if (input == 1) {
				Module_CreationControle mcc = new Module_CreationControle(d.getListeModules());
				mcc.addToDatabase(this.hMod);
			} else if (input == 2) {
				Module_ModificationControle mmc = new Module_ModificationControle(d.getListeModules());
				mmc.updateDatabase();
			} else {
				Module_SuppressionControle msc = new Module_SuppressionControle(d.getListeModules());
				msc.updateDatabase();
			}
		}
		
	}
	
	private void askInput() throws InputMismatchException {
		input = sc.nextInt();
		sc.nextLine();
		if ((input < 0) || (input > 3)) {
			throw new InputMismatchException();
		}
	}
	
	public void updateDatabase(Database d) {
		this.hMod.updateDatabase();
		Module_Gestion.updateDatabase();
	}
}
