package com.bizofficer.apiweb.mycourses;

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.MyCourses;



@Service
public class MyCoursesService{
	
	@Autowired
	EntityManagerFactory entityManagerFactory;
	
	public List<?> doExecute(Object obj) throws NotFoundException{
		MCBean objBean = (MCBean) obj; 	
		List<MyCoursesBean> dataList = new ArrayList<MyCoursesBean>();
		
		try {
		
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			
			MyCoursesBean beanObj;
			
			TypedQuery<MyCourses> queryCat = (TypedQuery<MyCourses>) entityManager.createQuery("from "+MyCourses.class.getName()+" where organisationId="+objBean.getOrganisationId()+" and studentId="+objBean.getStudentId()+" order by id desc ", MyCourses.class);
			queryCat.setFirstResult(0);
			queryCat.setMaxResults(100);
			List<?> resultListCat = queryCat.getResultList();
			Iterator<?> iteratorCat=resultListCat.iterator();
			while(iteratorCat.hasNext()){
				MyCourses myObj = (MyCourses)iteratorCat.next();
				
				beanObj = new MyCoursesBean();
				beanObj.setCourseId(myObj.getCourseId());
				beanObj.setCourseTitle(myObj.getCourseTitle());
				beanObj.setSubsriptionType(myObj.getSubsriptionType());
				beanObj.setValidTillDate(myObj.getValidTillDate());
				
				dataList.add(beanObj);
				
			}	
			
			
			entityManager.getTransaction().commit();
			entityManager.close();
			
			
		}catch(Exception e) {
			e.getStackTrace();
		}
		
		////System.out.println( "dataList >>> " +  dataList );
			
		return dataList;
	}
	

	
}
