Exemple #1
0
        private void WriteCategoryQuestionAnswer(SchemeQuestionWithChildQuestionsDto schemeQuestion,
                                                 CodedQuestionBase codedQuestion)
        {
            var orderedSchemeAnswers = schemeQuestion.PossibleAnswers.OrderBy(x => x.Order).ToList();

            foreach (var schemeAnswer in orderedSchemeAnswers)
            {
                var field = "NA";
                if (codedQuestion != null && codedQuestion.CodedAnswers.Count != 0)
                {
                    var codedAnswer = codedQuestion.CodedAnswers.SingleOrDefault(x => x.SchemeAnswerId == schemeAnswer.Id);
                    if (codedAnswer != null)
                    {
                        field = _codedTextExport ? schemeAnswer.Text : "1";
                    }
                    else
                    {
                        field = _codedTextExport ? "" : "0";
                    }

                    _csvWriter.WriteField(field);
                    WritePincite(codedAnswer);
                    WriteAnnotation(codedAnswer);
                }
                else
                {
                    _csvWriter.WriteField(field);
                    WritePincite(null);
                    WriteAnnotation(null);
                }
            }
        }
Exemple #2
0
        private int WriteCheckboxQuestionAnswer(SchemeQuestionWithChildQuestionsDto schemeQuestion,
                                                CodedQuestionBase codedQuestion)
        {
            var orderedSchemeAnswers = schemeQuestion.PossibleAnswers.OrderBy(x => x.Order).ToList();

            foreach (var schemeAnswer in orderedSchemeAnswers)
            {
                var field = "NA";

                if (WroteCategoryNotSelectedAnswer())
                {
                    continue;
                }

                if (codedQuestion == null || codedQuestion.CodedAnswers.Count == 0)
                {
                    _csvWriter.WriteField(field);
                    WritePincite(null);
                    WriteAnnotation(null);
                    continue;
                }

                try
                {
                    var codedAnswer = codedQuestion.CodedAnswers.SingleOrDefault(x => x.SchemeAnswerId == schemeAnswer.Id);
                    if (codedAnswer != null)
                    {
                        field = _codedTextExport ? schemeAnswer.Text : "1";
                    }
                    else
                    {
                        field = _codedTextExport ? "" : "0";
                    }

                    _csvWriter.WriteField(field);
                    WritePincite(codedAnswer);
                    WriteAnnotation(codedAnswer);
                }
                catch (InvalidOperationException)
                {
                    _result.SetError(ExportResult.BinaryAnswerInvalidOperation);
                    return(_result.Code);
                }
                catch (ArgumentNullException)
                {
                    _result.SetError(ExportResult.BinaryAnswerArgumentNull);
                    return(_result.Code);
                }
            }

            return(ExportResult.NoError);
        }
Exemple #3
0
        private int WriteBinaryQuestionAnswer(CodedQuestionBase codedQuestion)
        {
            var field = "NA";
            var error = ExportResult.NoError;

            if (WroteCategoryNotSelectedAnswer())
            {
                return(error);
            }

            if (codedQuestion != null && codedQuestion.CodedAnswers.Count != 0)
            {
                try
                {
                    var codedAnswer = codedQuestion.CodedAnswers.Single();
                    var order       = codedAnswer.SchemeAnswer.Order;

                    if (order == 1)
                    {
                        field = _codedTextExport ? codedAnswer.SchemeAnswer.Text : "1";
                    }
                    else if (order == 2)
                    {
                        field = _codedTextExport ? codedAnswer.SchemeAnswer.Text : "0";
                    }

                    _csvWriter.WriteField(field);
                    WritePincite(codedAnswer);
                    WriteAnnotation(codedAnswer);
                }
                catch (InvalidOperationException)
                {
                    _result.SetError(ExportResult.BinaryAnswerInvalidOperation);
                    return(_result.Code);
                }
                catch (ArgumentNullException)
                {
                    _result.SetError(ExportResult.BinaryAnswerArgumentNull);
                    return(_result.Code);
                }
            }
            else
            {
                _csvWriter.WriteField(field);
                WritePincite(null);
                WriteAnnotation(null);
            }

            return(error);
        }
Exemple #4
0
        private void WriteQuestionComment(CodedQuestionBase codedQuestion)
        {
            // don't write comment for non-statistical export
            if (_codedTextExport == false)
            {
                return;
            }

            // if there is a coded question write out the comment,
            if (codedQuestion != null)
            {
                _csvWriter.WriteField(codedQuestion.Comment);
            }
            else
            {
                _csvWriter.WriteField("");
            }
        }
Exemple #5
0
        private int WriteMultipleChoiceQuestionAnswer(CodedQuestionBase codedQuestion)
        {
            var field = "NA";
            var error = ExportResult.NoError;

            if (WroteCategoryNotSelectedAnswer())
            {
                return(error);
            }

            if (codedQuestion == null || codedQuestion.CodedAnswers.Count == 0)
            {
                _csvWriter.WriteField(field);
                WritePincite(null);
                WriteAnnotation(null);

                return(error);
            }

            try
            {
                var codedAnswer = codedQuestion.CodedAnswers.Single();
                field = _codedTextExport ? codedAnswer.SchemeAnswer.Text : codedAnswer.SchemeAnswer.Order.ToString();
                _csvWriter.WriteField(field);
                WritePincite(codedAnswer);
                WriteAnnotation(codedAnswer);
            }
            catch (InvalidOperationException)
            {
                _result.SetError(ExportResult.MultipleChoiceAnswerInvalidOperation);
                return(_result.Code);
            }
            catch (ArgumentNullException)
            {
                _result.SetError(ExportResult.MultipleChoiceAnswerArgumentNull);
                return(_result.Code);
            }

            return(error);
        }
Exemple #6
0
        private int WriteQuestionAnswer(SchemeQuestionWithChildQuestionsDto schemeQuestion,
                                        CodedQuestionBase codedQuestion)
        {
            var errorCode = ExportResult.NoError;

            switch (schemeQuestion.QuestionType)
            {
            case QuestionType.Binary:
                errorCode = WriteBinaryQuestionAnswer(codedQuestion);
                break;

            case QuestionType.Category:
                WriteCategoryQuestionAnswer(schemeQuestion, codedQuestion);
                break;

            case QuestionType.Checkbox:
                errorCode = WriteCheckboxQuestionAnswer(schemeQuestion, codedQuestion);
                break;

            case QuestionType.MultipleChoice:
                errorCode = WriteMultipleChoiceQuestionAnswer(codedQuestion);
                break;

            case QuestionType.TextField:
                errorCode = WriteTextFieldQuestionAnswer(codedQuestion);
                break;

            default:
                errorCode = ExportResult.AnswerInvalidQuestionType;
                break;
            }
            if (schemeQuestion.IncludeComment)
            {
                WriteQuestionComment(codedQuestion);
            }

            return(errorCode);
        }