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); }
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; } }
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); }