public ShortTestResultEntity GetShortTestResult(TestCompletedEntity testCompletedEntity) { ShortTestResultEntity shortTestResult = new ShortTestResultEntity() { TestName = testCompletedEntity.Test.Name, DateTimeStart = testCompletedEntity.DateTimeStart, DateTimeFinish = testCompletedEntity.DateTimeFinish, User = testCompletedEntity.User }; foreach (var questionEntity in testCompletedEntity.Test.Questions) { QuestionResultEntity questionResult = new QuestionResultEntity() { Text = questionEntity.Text }; var answersSet = new HashSet<int>(questionEntity.Options.Where(m => m.IsAnswer).Select(m => m.Id)); var pickedSet = new HashSet<int>(testCompletedEntity.Answers.Where(m => m.QuestionId == questionEntity.Id).Select(m => m.Id)); questionResult.IsAnsweredCorrectly = answersSet.SetEquals(pickedSet); shortTestResult.QuestionResults.Add(questionResult); } shortTestResult.Questions = testCompletedEntity.Test.Questions.Count; shortTestResult.RightAnsweredQuestions = shortTestResult.QuestionResults.Count(m => m.IsAnsweredCorrectly); return shortTestResult; }
public static TestCompletedEntity ToEntity(this TestSubmitViewModel testSubmitViewModel) { TestCompletedEntity testCompletedEntity = new TestCompletedEntity() { Answers = new List<OptionEntity>(), DateTimeFinish = testSubmitViewModel.DateTimeFinish, DateTimeStart = testSubmitViewModel.DateTimeStart, Id = testSubmitViewModel.Id, IsFinished = testSubmitViewModel.IsFinished, Test = testSubmitViewModel.Test.ToEntity(), User = testSubmitViewModel.User }; foreach (var answer in testSubmitViewModel.Answers) { testCompletedEntity.Answers.Add(answer.ToEntity()); } return testCompletedEntity; }
public static TestCompletedEntity ToBllTestCompleted(this DalTestCompleted dalTestCompleted) { TestCompletedEntity testCompletedEntity = new TestCompletedEntity() { Answers = new List<OptionEntity>(), DateTimeFinish = dalTestCompleted.DateTimeFinish, DateTimeStart = dalTestCompleted.DateTimeStart, Id = dalTestCompleted.Id, IsFinished = dalTestCompleted.IsFinished, Test = dalTestCompleted.Test.ToBllTest(), User = dalTestCompleted.User.ToBllUser() }; foreach (var answer in dalTestCompleted.Answers) { testCompletedEntity.Answers.Add(answer.ToBllOption()); } return testCompletedEntity; }
public void Create(TestCompletedEntity testCompletedEntity) { repository.Create(testCompletedEntity.ToDalTestCompleted()); }