Beispiel #1
0
        public static void ExportToCSV(QLExecutor executor, string path)
        {
            var lines = executor.VisibleQuestions.Select(question =>
                                                         EscapeCSV(question.Id) + ";" + EscapeCSV(executor.GetAnswer(question.Id).ToString()));
            var contents = string.Join("\n", lines);

            File.WriteAllText(path, contents);
        }
Beispiel #2
0
        private void ParseFile(string inputFile)
        {
            var fileContent = File.ReadAllText(inputFile);

            try
            {
                var astForm  = QLParser.ParseString(fileContent);
                var messages = ValidateForm(astForm);
                if (AnyErrors(messages))
                {
                    _view.SetErrors(messages.Errors);
                    return;
                }
                _executor = new QLExecutor(astForm);

                var qlsFileLocation            = inputFile + ".qls";
                IQuestionFormRenderer renderer = new QLRenderer(_executor);
                if (File.Exists(qlsFileLocation))
                {
                    var styleSheet = QLSParser.ParseString(File.ReadAllText(qlsFileLocation));
                    messages.Add(ValidateStyleSheet(styleSheet, astForm));
                    if (AnyErrors(messages))
                    {
                        _view.SetErrors(messages.Errors);
                        return;
                    }
                    renderer = new QLSRenderer(_executor, styleSheet);
                }
                _view.SetFormControl(renderer.Render());
                _view.SetWarnings(messages.Warnings);
            }
            catch (QLParseException exception)
            {
                _view.SetErrors(exception.Exceptions);
            }
        }
Beispiel #3
0
 public QLSRenderer(QLExecutor executor, StyleSheet styleSheet)
 {
     _executor   = executor;
     _styleSheet = styleSheet;
 }
Beispiel #4
0
 public QLRenderer(QLExecutor executor)
 {
     _executor = executor;
 }