/// <summary> /// Creates a block DTO, along with all sequence, trial and datalog DTOs that comprise it. /// </summary> /// <returns> Returns the block DTO.</returns> public TestBlockDTO CreateDTO() { DBController.LastTableIds lastIds = DBController.Instance.GetLastTableIds(); TestBlockDTO blockDTO = new TestBlockDTO(BlockCode, ParticipantCode, StartTime, SelectedVRHMD.ToString(), ConditionCode, ErrorThreshold, SpatialHysteresis, SelectedControlMethod.ToString(), SelectedConfirmationMethod.ToString(), DwellTime, Timeout, EyeSmoothFactor, MouseSensivity, TargetConditionsRandomized, BeepOnError, ShowCursor, HoverHightlight, ButtonDownHighlight, RecordGazePosition, BackgroundColor, CursorColor, TargetColor, ButtonDownColor, HoverColor, ReadyForGestureColor, MovementTime, ErrorRate, Throughput); for (int sequenceIndex = 0; sequenceIndex < Sequences.Count; sequenceIndex++) { blockDTO.TestSequenceDTOs.Add(Sequences[sequenceIndex].CreateDTO(lastIds.BlockId + 1)); for (int trialIndex = 0; trialIndex < Sequences[sequenceIndex].Trials.Count; trialIndex++) { blockDTO.TestSequenceDTOs[sequenceIndex].TestTrialDTOs.Add(Sequences[sequenceIndex].Trials[trialIndex].CreateDTO(lastIds.SequenceId + 1 + sequenceIndex)); blockDTO.TestSequenceDTOs[sequenceIndex].TestTrialDTOs[trialIndex].DataLogDTOs = Sequences[sequenceIndex].Trials[trialIndex].GenerateDataLogDTOList(lastIds.TrialId + 1 + trialIndex + sequenceIndex * Sequences[sequenceIndex].Trials.Count); } } if (Verifications != null) { for (int verificationIndex = 0; verificationIndex < Verifications.Count; verificationIndex++) { blockDTO.TestVerificationDTOs.Add(Verifications[verificationIndex].CreateDTO(lastIds.BlockId + 1)); } Verifications.Clear(); } return(blockDTO); }
/// <summary> /// Insert results into the database. /// </summary> /// <param name="block"></param> public void InsertTestResults(TestBlockDTO block) { List <TestSequenceDTO> sequences = block.TestSequenceDTOs; List <TestTrialDTO> trials = new List <TestTrialDTO>(); List <DataLogDTO> logs = new List <DataLogDTO>(); List <TestVerificationDTO> verifications = block.TestVerificationDTOs; foreach (TestSequenceDTO sequenceDto in block.TestSequenceDTOs) { foreach (TestTrialDTO trialDto in sequenceDto.TestTrialDTOs) { trials.Add(trialDto); logs.AddRange(trialDto.DataLogDTOs); } } _connection.Insert(block); _connection.InsertAll(sequences); _connection.InsertAll(trials); _connection.InsertAll(logs); _connection.InsertAll(verifications); }