package cn.com.qmth.stmms.biz.exam.service;

import java.util.List;

import cn.com.qmth.stmms.biz.exam.model.SubjectiveBlock;
import cn.com.qmth.stmms.biz.exam.query.SubjectiveBlockSearchQuery;

public interface SubjectiveBlockService {

    public SubjectiveBlock saveBlock(SubjectiveBlock block);

    public void deleteBlockById(int blockId);

    public void deleteBlockByExamIdAndSubjectCode(int examId, String subjectCode);

    public long countBlockByExamIdAndSubjectCode(int examId, String subjectCode);

    public long countSubjectByExamId(int examId);

    public List<SubjectiveBlock> findBlockByExamIdAndSubjectCode(int examId, String subjectCode);

    public SubjectiveBlock findBlockByExamIdAndSubjectCodeAndNumber(int examId, String subjectCode, int number,
            boolean withStep);

    public List<SubjectiveBlock> findBlockByExamIdAndMultiSubjectCode(int examId, String subjectCodes);

    public List<SubjectiveBlock> findBlockByExamIdAndSubjectCode(int examId, String subjectCode, boolean withStep);

    public List<SubjectiveBlock> findBlockByExamId(int examId);

    public SubjectiveBlock findBlockById(int blockId);

    public SubjectiveBlock findBlockById(int blockId, boolean withStep);

    public SubjectiveBlockSearchQuery findByQuery(final SubjectiveBlockSearchQuery query);
}
