package com.eassessment.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.eassessment.model.AdminDao;
import com.eassessment.model.CoordinateDao;
import com.eassessment.pojo.Topics;
import com.eassessment.util.Constants;
import com.eassessment.util.StringUtil;

/**
 * Servlet implementation class AddTopic
 */
public class AddTopic extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public AddTopic() {
		super();

	}

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		boolean isNew = true;
		// edit new record
		try {
			String topicid = request.getParameter("topic_id");
			String topicname = request.getParameter("topic_name");

			if (topicid.length() > 0) {
				isNew = false;
				Topics topic = new Topics();
				topic.setTopic_name(topicname);
				String responseString = CoordinateDao.getInstance()
						.updateTopic(Integer.parseInt(topicid), topicname);
				System.out.println("responseString:" + responseString);
				if (responseString.equals(Constants.OK)) {
					request.setAttribute(
							"message",
							StringUtil
									.setSuccessMessage("Topic is updated successfully."));
				} else {
					request.setAttribute(
							"message",
							StringUtil.setErrorMessage("Failed to update..."
									+ responseString));
				}
			}

		} catch (Exception e) {

		}

		// save new record
		if (isNew)
			try {
				String topicname = request.getParameter("topic_name");

				if (topicname.length() > 0) {
					Topics topic = new Topics();
					topic.setTopic_name(topicname);
					String responseString = CoordinateDao.getInstance()
							.saveTopic(topic);
					System.out.println("responseString:" + responseString);
					if (responseString.equals(Constants.OK)) {
						request.setAttribute(
								"message",
								StringUtil
										.setSuccessMessage("New Topic is saved successfully."));
					} else {
						request.setAttribute(
								"message",
								StringUtil.setErrorMessage("Failed to save..."
										+ responseString));
					}
				}

			} catch (Exception e) {

			}
		List<Topics> topics = AdminDao.getInstance().getMainTopic();
		request.setAttribute("topics", topics);

		RequestDispatcher rd = request.getRequestDispatcher("AddTopic.jsp");
		rd.forward(request, response);

	}

}
