package com.eassessment.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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.util.Constants;
import com.eassessment.util.Email;
import com.eassessment.util.StringUtil;

/**
 * Servlet implementation class Approval
 */
public class Approval extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Approval() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		  
		try{
			Long id=Long.parseLong(request.getParameter("id"));
			//System.out.println("---: Long id: " + id );
			if(AdminDao.getInstance().approveStudent(id, Constants.APROVED)){
				request.setAttribute("message", StringUtil.setSuccessMessage(StringUtil.STUDENT_REGESTRED));
				
				// Send approved email
				try {
					String filename = "/WEB-INF/emailapprove.txt";
					StringBuilder sb = new StringBuilder();
					ServletContext context = request.getSession()
							.getServletContext();
					InputStream is = context.getResourceAsStream(filename);
					if (is != null) {
						InputStreamReader isr = new InputStreamReader(is);
						BufferedReader reader = new BufferedReader(isr);

						String text = "";

						while ((text = reader.readLine()) != null) {
							sb.append(text);
						}
//						System.out.println("---: request.getSession().getAttribute(userid).toString(): "+request.getSession().getAttribute("userid")
//										.toString());
						String sub = AdminDao.getInstance().getUser(id+"").getName().concat( StringUtil.HAS_APPROVED_FOR_TEST);
						System.out.println("---: Sub="+sub);
						System.out.println("REFERREL EMAIL::"
								+ request.getSession().getAttribute("userid")
										.toString()
								+ "\t"
								+ Email.SendMailTLS(AdminDao.getInstance()
										.getUser("" + id).getEmail(), sb, sub));
					}

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}catch (Exception e) {
			 
		}
		 request.setAttribute("userList", AdminDao.getInstance().getPendingUser());
		 RequestDispatcher rd = request.getRequestDispatcher("Approval.jsp");
			rd.forward(request, response);
	}

}
