package com.bizofficer.school.classes;



import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;

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.PgprepSchoolClasses;
import com.bizofficer.hibernate.repository.OrganisationTemplateAssociationRepository;
import com.bizofficer.hibernate.repository.PgprepSchoolUsersRepository;


@Service
public class ClassesUpdateService{
	
	private static final Logger logger = Logger.getLogger(ClassesUpdateService.class);
	
	@Autowired
	EntityManagerFactory entityManagerFactory;
	
	@Autowired
	PgprepSchoolUsersRepository adminRepo;
	
	@Autowired
	OrganisationTemplateAssociationRepository otaRepo;
	
	@Autowired
    DataSource appDataSource;
	
	public Object execute(Object obj) throws NotFoundException{
		ClassesBean objBean = (ClassesBean) obj;
		ClassesSaveResponseBean responseListObj = new ClassesSaveResponseBean();
		
		try {
			
			responseListObj.setResponseTxt("failed");
			
			logger.info("Id >> " + objBean.getId() );
			logger.info("EmailId >> " + objBean.getEmailId() );
			logger.info("ClassName >> " + objBean.getClassName() );			
			logger.info("Course Id >> " + objBean.getCourseId() );
			logger.info("Course Title >> " + objBean.getCourseTitle() );
			logger.info("Organisation Id >> " + objBean.getOrganisationId() );
			
			if(objBean.getId()==null && objBean.getClassName()==null || objBean.getOrganisationId()==null) {
				return responseListObj;
			}
			
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			
			PgprepSchoolClasses findObj = (PgprepSchoolClasses)entityManager.find(PgprepSchoolClasses.class ,objBean.getId());
			findObj.setClassName(objBean.getClassName());
			findObj.setCourseId(objBean.getCourseId());
			findObj.setCourseTitle(objBean.getCourseTitle());
			findObj.setOrganisationId(objBean.getOrganisationId());	
			
			responseListObj.setResponseTxt("success");			
			
			entityManager.getTransaction().commit();
			entityManager.close();
		        
		}catch(Exception e) {
			e.getStackTrace();
		}
		
		
		return responseListObj;
	}
	

	
	

	
	
}
