package com.bizofficer.apiweb.studentdetail;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.TypedQuery;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.crossstore.ChangeSetPersister.NotFoundException;
import org.springframework.stereotype.Service;

import com.bizofficer.hibernate.entity.PgprepStudentDetails;


@Service
public class StudentDetailService{
	
	@Autowired
	EntityManagerFactory entityManagerFactory;
	
	public List<?> doExecute(Object obj) throws NotFoundException{
		BeanStu objBean = (BeanStu) obj; 	
		List<StudentsBean> dataList = new ArrayList<StudentsBean>();
		
		try {
		
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			
			StudentsBean studentsObj;
			
			TypedQuery<PgprepStudentDetails> queryCat = (TypedQuery<PgprepStudentDetails>) entityManager.createQuery("from "+PgprepStudentDetails.class.getName()+" where organisationId="+objBean.getOrganisationId()+" and studentId='"+objBean.getStudentId()+"' ", PgprepStudentDetails.class);
			queryCat.setFirstResult(0);
			queryCat.setMaxResults(1);
			List<?> resultListCat = queryCat.getResultList();
			Iterator<?> iteratorCat=resultListCat.iterator();
			while(iteratorCat.hasNext()){
				PgprepStudentDetails myObj = (PgprepStudentDetails)iteratorCat.next();
				
				studentsObj = new StudentsBean();
				studentsObj.setStudentName(myObj.getSname());
				studentsObj.setStudentImage(myObj.getPhoto());
				studentsObj.setEmailId(myObj.getEmailId());
				studentsObj.setMobile(myObj.getPhoneNo());
				
				if(myObj.getAccountStatus()==1) {
					studentsObj.setStatus("Active");
				}else {
					studentsObj.setStatus("Inactive");
				}
				
				studentsObj.setCreatedDateTime(myObj.getRegistrationDate());
				
				dataList.add(studentsObj);
			}	
			
			entityManager.getTransaction().commit();
			entityManager.close();
			
			
		}catch(Exception e) {
			e.getStackTrace();
		}
		
		////System.out.println( "dataList >>> " +  dataList );
			
		return dataList;
	}
	

	
}
