package com.bizofficer.subscription.courses;



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.SubscriptionCourses;


@Service
public class CourseDetailsMobileService{
	
    @Autowired
	EntityManagerFactory entityManagerFactory;
	
	public Object execute(Object obj) throws NotFoundException{
		ACoursesBean objBean = (ACoursesBean) obj; 	
		CourseDetailsResponseBean resObj = new CourseDetailsResponseBean();
		
		try {
			
			System.out.println("CourseDetailsMobileService Course Id: "+objBean.getCourseId());
			
			if(objBean.getWebsiteId()==null || objBean.getCourseId()==null) {
				return resObj;
			}
			
			EntityManager entityManager = entityManagerFactory.createEntityManager();
			entityManager.getTransaction().begin();
			
			TypedQuery<SubscriptionCourses> query = (TypedQuery<SubscriptionCourses>) entityManager.createQuery("from "+SubscriptionCourses.class.getName()+" WHERE status=1 AND websiteId=:websiteId AND courseId=:courseId ", SubscriptionCourses.class);
			query.setParameter("websiteId", objBean.getWebsiteId() );
			query.setParameter("courseId", objBean.getCourseId() );			
			query.setFirstResult(0);
			query.setMaxResults(1);
			List<?> resultList = query.getResultList();
			Iterator<?> iterator=resultList.iterator();
			if(iterator.hasNext()){
				SubscriptionCourses myObj = (SubscriptionCourses)iterator.next();
				resObj.setCourseSubTitle(myObj.getCourseSubTitle());				
				resObj.setCourseTitle(myObj.getCourseTitle());
				resObj.setCourseDetail(myObj.getHeadingDescription());
				
			}	
           
                        
            entityManager.getTransaction().commit();
			entityManager.close();
			
		}catch(Exception e) {
			e.getStackTrace();			
		}
		
		
		return resObj;
	}
	
	
	
	
}
