예제 #1
0
        public IActionResult AnalysisExam(int testId, byte[] timeStamp)
        {
            var atsEntity = _analysisRepository.GetAssignmentWithTaskAndTemplate(UserId, testId);

            if (atsEntity == null)
            {
                return(Unauthorized());
            }

            if (!atsEntity.TakenTest)
            {
                _analysisRepository.MarkExamAsTaken(testId, UserId, timeStamp);
            }

            var outputTablesDb = _adminConnectionConf.OutputTablesDbName;


            var sts  = atsEntity.AnalysisTest.SynthesisTestStudent;
            var task = sts.SynthesisTest.Task;
            var vm   = new AnalysisExamVM()
            {
                Title                    = $"{atsEntity.AnalysisTest.Name}",
                ModelDescription         = task.Template.ModelDescription,
                TaskDescription          = task.Description,
                SqlSolutionForEvaluation = sts.SqlScript,
                FailingInputVM           = new ModifyDatabasePartialVM()
                {
                    NameOnServer = atsEntity.InputNameOnServer
                },
                StudentOutputVM = new ModifyTablePartialVM()
                {
                    NameOnServer = outputTablesDb,
                    TableName    = atsEntity.StudentOutputNameOnServer
                },
                CorrectOutputVM = new ModifyTablePartialVM()
                {
                    NameOnServer = outputTablesDb,
                    TableName    = atsEntity.TeacherOutputNameOnServer
                }
            };

            return(View("~/Views/Test/AnalysisExam.cshtml", vm));
        }
예제 #2
0
        public IActionResult AnalysisExamReadonly(Guid studentId, int testId)
        {
            var atsEntity = _analysisRepository.GetAssignmentWithTaskAndTemplate(studentId, testId);

            if (atsEntity == null || !atsEntity.TakenTest)
            {
                throw new Exception("Test not found or taken");
            }


            var outputTablesDb = _adminConnectionConf.OutputTablesDbName;


            var sts  = atsEntity.AnalysisTest.SynthesisTestStudent;
            var task = sts.SynthesisTest.Task;
            var vm   = new AnalysisExamVM()
            {
                Title                    = $"Task '{atsEntity.AnalysisTest.Name}'",
                ModelDescription         = task.Template.ModelDescription,
                TaskDescription          = task.Description,
                SqlSolutionForEvaluation = sts.SqlScript,
                FailingInputVM           = new ModifyDatabasePartialVM()
                {
                    NameOnServer = atsEntity.InputNameOnServer
                },
                StudentOutputVM = new ModifyTablePartialVM()
                {
                    NameOnServer = outputTablesDb,
                    TableName    = atsEntity.StudentOutputNameOnServer
                },
                CorrectOutputVM = new ModifyTablePartialVM()
                {
                    NameOnServer = outputTablesDb,
                    TableName    = atsEntity.TeacherOutputNameOnServer
                },
                Readonly = true
            };

            return(View("~/Views/Test/AnalysisExam.cshtml", vm));
        }