コード例 #1
0
        private AssessmentSystem.Data.Access.ExerciseManagement.Task CreateCandidateTask(
            TaskInfo candidateTaskInfo)
        {
            var result = new AssessmentSystem.Data.Access.ExerciseManagement.Task
            {
                CodeTemplate  = candidateTaskInfo.CodeTemplate,
                Description   = candidateTaskInfo.Description,
                MaximumScore  = candidateTaskInfo.MaximumScore,
                TimeMinutes   = candidateTaskInfo.TimeMinutes,
                Name          = candidateTaskInfo.Name,
                Subject       = candidateTaskInfo.Subject,
                IsSoftDeleted = false
            };

            if (candidateTaskInfo.Tips != null)
            {
                result.Tips = candidateTaskInfo.Tips.Select(
                    tipText => new TaskTip {
                    Text = tipText
                }).ToList();
            }

            SetTestClassAndMethod(result, candidateTaskInfo);

            return(result);
        }
コード例 #2
0
        private void SetTestClassAndMethod(
            AssessmentSystem.Data.Access.ExerciseManagement.Task candidateTask,
            TaskInfo candidateTaskInfo)
        {
            var testClass = _assemblyContext.TestClassInfo.FirstOrDefault(classInfo =>
                                                                          classInfo.Name.Equals(candidateTaskInfo.TestClassName, StringComparison.Ordinal));

            candidateTask.TestClassId = testClass?.Id ?? throw new TestClassInfoNotFoundException();

            if (!string.IsNullOrWhiteSpace(candidateTaskInfo.TestMethodName))
            {
                var testMethod = testClass.TestMethods.FirstOrDefault(method =>
                                                                      method.Name.Equals(candidateTaskInfo.TestMethodName, StringComparison.Ordinal));
                candidateTask.TestMethodId = testMethod?.Id;
            }
        }
コード例 #3
0
        private void UpdateCandidateTask(
            AssessmentSystem.Data.Access.ExerciseManagement.Task candidateTask,
            TaskInfo candidateTaskInfo)
        {
            candidateTask.CodeTemplate = candidateTaskInfo.CodeTemplate;
            candidateTask.Description  = candidateTaskInfo.Description;
            candidateTask.MaximumScore = candidateTaskInfo.MaximumScore;
            candidateTask.TimeMinutes  = candidateTaskInfo.TimeMinutes;
            candidateTask.Name         = candidateTaskInfo.Name;
            candidateTask.Subject      = candidateTaskInfo.Subject;

            if (candidateTaskInfo.Tips != null)
            {
                UpdateTips(candidateTask.Tips, candidateTaskInfo.Tips.ToArray());
            }
            else
            {
                UpdateTips(candidateTask.Tips);
            }

            SetTestClassAndMethod(candidateTask, candidateTaskInfo);
        }