package com.bizofficer.school.teachers;



import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.crossstore.ChangeSetPersister.NotFoundException;
import org.springframework.stereotype.Service;

import com.bizofficer.hibernate.entity.PgprepTeachers;
import com.bizofficer.hibernate.repository.PgprepSchoolUsersRepository;
import com.bizofficer.util.system.General;


@Service
public class TeachUpdateService{
	
	private static final Logger logger = Logger.getLogger(TeachUpdateService.class);
	
	@Autowired
	EntityManagerFactory entityManagerFactory;
	
	@Autowired
	PgprepSchoolUsersRepository adminRepo;
	
	public Object execute(Object obj) throws NotFoundException{
		TeachBean objBean = (TeachBean) obj;
		TeacherSchoolResponseBean responseObj = new TeacherSchoolResponseBean();
		
		try {
			
			responseObj.setResponseTxt("failed");
			
			logger.info("SchoolName >> " + objBean.getSchoolName() );
			logger.info("SchoolId >> " + objBean.getSchoolId() );
			logger.info("LoginId >> " + objBean.getLoginId() );
			logger.info("EmailId >> " + objBean.getEmailId() );
			logger.info("TeacherName >> " + objBean.getTeacherName() );			
			logger.info("AccountStatus >> " + objBean.getAccountStatus() );
			logger.info("Role >> " + objBean.getRole() );
			
			if(objBean.getEmailId()==null || objBean.getTeacherName()==null) {
				return responseObj;
			}
			
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			General gen = new General();
			
			PgprepTeachers findObj = (PgprepTeachers)entityManager.find(PgprepTeachers.class ,objBean.getId());
			findObj.setEmailId(objBean.getEmailId());
			findObj.setTeacherName(objBean.getTeacherName());
				
			if(objBean.getNewPassword()!=null && objBean.getNewPassword().length()>2 ) {
				findObj.setPassword(gen.getMD5Hashing(objBean.getNewPassword()));
			}

			if(Boolean.TRUE.equals(objBean.getAccountStatusChk())) {
				findObj.setAccountStatus(1);
			}else {
				findObj.setAccountStatus(0);
			}

			responseObj.setResponseTxt("success");			
			
			entityManager.getTransaction().commit();
			entityManager.close();
		        
		}catch(Exception e) {
			e.getStackTrace();
		}
		
		
		return responseObj;
	}
	

	
	

	
	
}
