using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using TMSDAL.DTO.AssessmentAttempt; namespace TMSBLL.AssessmentAttempt { public interface IAssessmentAttemptBLL { Task GetAssessmentAttempt(int assessmentAttemptId, LoginDTO loginDTO); Task GetAssessmentAttemptList(int enrollmentId, LoginDTO loginDTO); Task GetAssessmentAttemptFullList(LoginDTO loginDTO); Task GetSelectListAssessmentAttempt(CriteriaDTO criteriaDTO, LoginDTO loginDTO); /// Starts attempt — saves header + all responses. Computes AttemptNo. Task StartAssessmentAttempt(AssessmentAttemptDTO dto, LoginDTO loginDTO); /// Submits attempt — computes score/pass from responses, updates header. Task SubmitAssessmentAttempt(AssessmentAttemptDTO dto, LoginDTO loginDTO); /// Manual evaluation — evaluator updates response marks, recalculates score. Task EvaluateAssessmentAttempt(AssessmentAttemptDTO dto, LoginDTO loginDTO); Task DeleteAssessmentAttempt(int assessmentAttemptId, LoginDTO loginDTO); /// /// Records an assessment taken entirely outside the system (proctored/paper-based exam). /// Full-detail mode: dto.Responses populated — scored through the normal pipeline. /// Summary-only mode: dto.Responses empty, dto.ScorePct supplied directly by the grader. /// Tags DeliveryChannel = Manual so it's distinguishable from in-app/FLS attempts in reporting. /// Task RecordManualAttempt(AssessmentAttemptDTO dto, LoginDTO loginDTO); } }