Esempio n. 1
0
        public async Task <object> CreateAnkiFileFromQuestionFiles(object directory)
        {
            bool   result  = true;
            string message = null;

            //try
            //{
            //    Trace.WriteLine($"CreateAnkiFileFromQuestionFiles() : directory \"{directory}\"");
            //    string file = QuestionRun.CreateQuestionsManager((string)directory).CreateAnkiFileFromQuestionFiles();
            //    message = $"anki file created \"{file}\"";
            //}
            //catch (Exception ex)
            //{
            //    Trace.WriteLine($" error : {ex.Message}");
            //    Trace.WriteLine(ex.StackTrace);
            //    result = false;
            //    message = ex.Message;
            //}
            //return new { Result = result, Message = message };
            //return new ResultMessage { Result = result, Message = message };
            Try(
                () =>
            {
                Trace.WriteLine($"CreateAnkiFileFromQuestionFiles() : directory \"{directory}\"");
                string file = QuestionRun.CreateQuestionsManager((string)directory).CreateAnkiFileFromQuestionFiles();
                message     = $"anki file created \"{zPath.GetFileName(file)}\"";
            },
                ex =>
            {
                result  = false;
                message = ex.Message;
            });
            return(new { Result = result, Message = message });
        }
Esempio n. 2
0
        // Func<string, string, bool> testUnitReader, string extension
        private static void TestUnit_Reader(TestUnitOpe ope, IEnumerable <string> directories, string outputDirectory, bool traceUnknowValue, bool v2)
        {
            QuestionsManager questionsManager = QuestionRun.CreateQuestionsManager(v2: v2);

            questionsManager.TraceUnknowValue = traceUnknowValue;

            string baseDirectory = XmlConfig.CurrentConfig.GetExplicit("CardDirectory");
            string extension     = ope == TestUnitOpe.ReadQuestions ? ".questions.json" : ".responses.json";
            int    okCount       = 0;
            int    notOkCount    = 0;
            int    noOkCount     = 0;
            int    errorCount    = 0;

            foreach (string directory in directories)
            {
                if (!directory.StartsWith(baseDirectory))
                {
                    throw new PBException($"wrong directory \"{directory}\"");
                }
                string directory2 = directory.Substring(baseDirectory.Length + 1);
                string file       = zPath.Combine(outputDirectory, directory2 + extension);
                Trace.WriteLine($"create file \"{directory2 + extension}\"");
                if (ExecOpe(questionsManager, ope, directory, file, v2))
                {
                    string okFile = zPath.Combine(zPath.GetDirectoryName(file), "ok", zPath.GetFileName(file));
                    if (zFile.Exists(okFile))
                    {
                        if (zfile.AreFileEqual(file, okFile))
                        {
                            Trace.WriteLine("  ok");
                            okCount++;
                        }
                        else
                        {
                            Trace.WriteLine("  not ok");
                            notOkCount++;
                        }
                    }
                    else
                    {
                        Trace.WriteLine("  ok file not found");
                        noOkCount++;
                    }
                }
                else
                {
                    errorCount++;
                }
            }
            Trace.WriteLine($"{okCount} ok {notOkCount} not ok {errorCount} error {noOkCount} ok not found");
        }
Esempio n. 3
0
        public static void Test_QuestionReader_Comparev1v2(IEnumerable <string> directories, string outputDirectory)
        {
            string            baseDirectory     = XmlConfig.CurrentConfig.GetExplicit("CardDirectory");
            QuestionReader_v2 questionReader_v2 = CreateQuestionReader_v2();

            foreach (string directory in directories)
            {
                Trace.WriteLine($"compare QuestionReader for \"{directory}\"");
                string directory2 = zPath.Combine(baseDirectory, directory);
                string file1      = zPath.Combine(outputDirectory, "questions.json");
                string file2      = zPath.Combine(outputDirectory, "questions_v2.json");
                QuestionRun.CreateQuestionsManager(directory2).ReadQuestions().zSave(file1, jsonIndent: true);
                questionReader_v2.Read(QuestionsManager.GetScanFiles(zPath.Combine(directory2, @"data\scan")), baseDirectory)
                .Select(question => (Question_v2)question).zSave(file2, jsonIndent: true);
                if (!zfile.AreFileEqual(file1, file2))
                {
                    Trace.WriteLine("  files are differents");
                    break;
                }
            }
        }
Esempio n. 4
0
 public static IEnumerable <Question> Test_QuestionReader_v1(string directory)
 {
     return(QuestionRun.CreateQuestionsManager(directory).ReadQuestions());
 }