package qa.qcri.aidr.trainer.pybossa.dao.impl;
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import qa.qcri.aidr.trainer.pybossa.dao.TaskTranslationDao;
import qa.qcri.aidr.trainer.pybossa.entity.TaskTranslation;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author dan landy
*
*/
@Repository
public class TaskTranslationDaoImpl extends AbstractDaoImpl<TaskTranslation, String> implements TaskTranslationDao {
protected TaskTranslationDaoImpl(){
super(TaskTranslation.class);
}
@Override
public TaskTranslation findTranslationByID(Long translationId) {
TaskTranslation translation = findByCriterionID(Restrictions.eq("translationId", translationId));
return translation;
}
public TaskTranslation findTranslationByTaskID(Long taskId) {
TaskTranslation translation = findByCriterionID(Restrictions.eq("taskId", taskId));
return translation;
}
public List<TaskTranslation> findAllTranslationsByTaskID(Long taskId) {
List<TaskTranslation> translations = findByCriteria(Restrictions.eq("taskId", taskId));
return translations;
}
public List<TaskTranslation> findAllTranslationsByClientAppIdAndStatus(Long clientAppId, String status, Integer count) {
Map map = new HashMap();
map.put("clientAppId", clientAppId);
map.put("status", status);
List<TaskTranslation> list = findByCriteria(Restrictions.allEq(map), count);
return list;
}
public List<TaskTranslation> findAllTranslations() {
Criteria criteria = getCurrentSession().createCriteria(TaskTranslation.class);
return criteria.list();
}
@Override
public void createTaskTranslation(TaskTranslation taskTranslation) {
if(taskTranslation.getCreated() == null){
taskTranslation.setCreated(new Date());
}
save(taskTranslation);
}
@Override
public void saveOrUpdateTaskTranslation( TaskTranslation taskTranslation) {
if(taskTranslation.getCreated() == null){
taskTranslation.setCreated(new Date());
}
saveOrUpdate(taskTranslation);
}
@Override
public int countAllTranslationsByOrderID(Integer orderId) {
List<TaskTranslation> translations = findByCriteria(Restrictions.eq("twbOrderId", new Long(orderId)));
return translations.size();
}
}