示例#1
0
    /// <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);
    }
示例#2
0
    /// <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);
    }