package commands;

import java.io.IOException;
import java.util.regex.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import spring.Context;

import dao.*;

import business.Turma;

public class TurmaInserir extends AbstractCommand {

	private TurmaDAO turmaDAO = DAOFactory.getInstance().getTurmaDAO();

	@Override
	public void processarComando(HttpServletRequest request,
			HttpServletResponse response, Context context) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// Recupera os Parâmetros
		String codigo = request.getParameter("codigo");
		String nome = request.getParameter("nome");
		String cargaHoraria = request.getParameter("cargaHoraria");

		String msg = null;

		// Valida entrada
		if ("".equals(codigo)) {
			msg = "Código deve ser preenchido!";
		} else if ("".equals(nome)) {
			msg = "Nome deve ser preenchido!";
		}
		if (msg != null) {
			response.sendRedirect("turmaInserir.jsp?msg=" + msg);
			return;
		}

		// Cria um Prof com os Parâmetros
		Turma turma = new Turma();
		turma.setCodigo(codigo);
		turma.setNome(nome);
		if (!"".equals(cargaHoraria)) {
			Pattern p = Pattern.compile("\\d*");
			Matcher m = p.matcher(cargaHoraria);
			if (m.matches()) {
				turma.setCargaHoraria(Integer.parseInt(cargaHoraria));
			} else {
				msg = "Carga Horária deve conter apenas dígitos!";
				response.sendRedirect("turmaInserir.jsp?msg=" + msg);
				return;
			}
		}

		// Insere o Prof no Banco
		msg = turmaDAO.adicionarTurma(turma);

		// Avisa o Usuário
		response.sendRedirect("turmaInserir.jsp?msg=" + msg);

	}

}
