public void CreateQuestionResponseFiles_v2(IEnumerable <QuestionResponseData_v2> questionResponses) { // create questions files : data/question-01-2015-016.json ... //string dataDirectory = GetDataDirectory(); Trace.WriteLine("create questions responses files"); QuestionResponses.CreateQuestionResponseFiles_v2(questionResponses, _directory); }
//public void ExportResponse_v2() //{ // string file = zPath.Combine(_directory, GetFileName() + ".response.txt"); // Response[] responses = ReadResponses().ToArray(); // // 2012 // // Q102: ABCD // Trace.WriteLine($"export responses to \"{file}\""); // //Dictionary<int, int> years = new Dictionary<int, int>(); // //List<IEnumerator<Response>> yearResponses = new List<IEnumerator<Response>>(); // SortedDictionary<int, IEnumerator<Response>> years = new SortedDictionary<int, IEnumerator<Response>>(); // //int index = 0; // //Trace.WriteLine($"{responses.Length} responses"); // foreach (Response response in responses) // { // //Trace.WriteLine($"{response.Year} - Q{response.QuestionNumber}: {response.Responses}"); // if (!years.ContainsKey(response.Year)) // { // //years.Add(response.Year, index++); // //yearResponses.Add(responses.Where(response2 => response2.Year == response.Year).GetEnumerator()); // years.Add(response.Year, responses.Where(response2 => response2.Year == response.Year).GetEnumerator()); // } // } // using (StreamWriter sw = new StreamWriter(zFile.Create(file))) // { // StringBuilder sb = new StringBuilder(); // bool first = true; // foreach (int year in years.Keys.Reverse()) // { // if (!first) // sb.Append(new string(' ', _yearWidth - 5)); // sb.Append($" {year}"); // first = false; // } // sw.WriteLine(); // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // //int lastIndex = -1; // int l = 0; // //foreach (Response response in responses) // while (true) // { // bool found = false; // int lastIndex = -1; // int index = -1; // //foreach (IEnumerator<Response> yearResponse in yearResponses) // foreach (int year in years.Keys.Reverse()) // { // index++; // IEnumerator<Response> yearResponse = years[year]; // if (!yearResponse.MoveNext()) // continue; // found = true; // Response response = yearResponse.Current; // //Trace.WriteLine($"{response.Year} - Q{response.QuestionNumber}: {response.Responses}"); // //index = years[response.Year]; // if (index <= lastIndex) // { // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // lastIndex = -1; // l = 0; // } // if (index != lastIndex - 1 || l > 0) // sb.Append(new string(' ', (index - lastIndex - 1) * _yearWidth + l)); // string text = $" Q{response.QuestionNumber}: {response.Responses}"; // l = _yearWidth - text.Length; // sb.Append(text); // lastIndex = index; // } // if (!found) // break; // if (sb.Length > 0) // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // lastIndex = -1; // l = 0; // } // } //} //public void ExportResponse_v1() //{ // string file = zPath.Combine(_directory, GetFileName() + ".response.txt"); // Response[] responses = GetResponses().ToArray(); // // 2012 // // Q102: ABCD // Trace.WriteLine($"export responses to \"{file}\""); // Dictionary<int, int> years = new Dictionary<int, int>(); // List<IEnumerator<Response>> yearResponses = new List<IEnumerator<Response>>(); // //SortedDictionary<int, IEnumerator<Response>> years = new SortedDictionary<int, IEnumerator<Response>>(); // int index = 0; // //Trace.WriteLine($"{responses.Length} responses"); // foreach (Response response in responses) // { // //Trace.WriteLine($"{response.Year} - Q{response.QuestionNumber}: {response.Responses}"); // if (!years.ContainsKey(response.Year)) // { // years.Add(response.Year, index++); // yearResponses.Add(responses.Where(response2 => response2.Year == response.Year).GetEnumerator()); // } // } // using (StreamWriter sw = new StreamWriter(zFile.Create(file))) // { // StringBuilder sb = new StringBuilder(); // bool first = true; // foreach (int year in years.Keys) // { // if (!first) // sb.Append(new string(' ', _yearWidth - 5)); // sb.Append($" {year}"); // first = false; // } // sw.WriteLine(); // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // int lastIndex = -1; // int l = 0; // //foreach (Response response in responses) // while (true) // { // bool found = false; // foreach (IEnumerator<Response> yearResponse in yearResponses) // { // if (!yearResponse.MoveNext()) // continue; // found = true; // Response response = yearResponse.Current; // //Trace.WriteLine($"{response.Year} - Q{response.QuestionNumber}: {response.Responses}"); // index = years[response.Year]; // if (index <= lastIndex) // { // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // lastIndex = -1; // l = 0; // } // if (index != lastIndex - 1 || l > 0) // sb.Append(new string(' ', (index - lastIndex - 1) * _yearWidth + l)); // string text = $" Q{response.QuestionNumber}: {response.Responses}"; // l = _yearWidth - text.Length; // sb.Append(text); // lastIndex = index; // } // if (!found) // break; // if (sb.Length > 0) // sw.WriteLine(sb.ToString()); // sw.WriteLine(); // sb.Clear(); // lastIndex = -1; // l = 0; // } // } //} // QuestionResponseFiles questionResponseFiles private IEnumerable <QuestionResponse> GetQuestionResponses() { //QuestionResponseFiles questionResponseFiles = GetQuestionResponseScanFiles(); //// , string baseDirectory = null //return QuestionResponses.GetQuestionResponses(QuestionReader.Read(questionResponseFiles.QuestionFiles, _questionRegexValuesList, questionResponseFiles.BaseDirectory), // ResponseReader.Read(questionResponseFiles.ResponseFile, _responseRegexValuesList)); return(QuestionResponses.GetQuestionResponses(ReadQuestions(), ReadResponses())); }
public void CreateAllQuestionResponseFiles() { Response[] responses = ReadResponses().ToArray(); CreateResponsesFile(responses); ExportResponses(responses); Question[] questions = ReadQuestions().ToArray(); CreateQuestionsFile(questions); QuestionResponses.DeleteUnmodifiedQuestionResponseFiles(_directory); CreateQuestionResponseFiles(QuestionResponses.GetQuestionResponses(questions, responses)); }
//public void CreateAnkiFileFromScanFiles() //{ // string ankiFile = GetAnkiFile(); // Trace.WriteLine($"create anki file \"{ankiFile}\" from scan files"); // AnkiWriter.Write(ankiFile, GetQuestionResponses() // .Select(questionResponse => // new AnkiQuestion { Question = questionResponse.GetHtml(questionNumber: true, replaceSpecialCharacters: true), Response = questionResponse.Response != null ? questionResponse.Response.GetFormatedResponse() : "(unknow response)" })); //} public string CreateAnkiFileFromQuestionFiles() { string ankiFile = GetAnkiFile(); Trace.WriteLine($"create anki file \"{ankiFile}\" from questions files"); AnkiWriter.Write(ankiFile, QuestionResponses.GetQuestionFiles(_directory).Select(file => QuestionResponses.LoadQuestion(_directory, file)) .Select(questionResponseHtml => new AnkiQuestion { Question = $"<h1>{questionResponseHtml.Year} - question no {questionResponseHtml.Number}</h1><br>" + questionResponseHtml.QuestionHtml, Response = Response.GetFormatedResponse(questionResponseHtml.Responses) })); return(ankiFile); }
public void CreateAllQuestionResponseFiles_v2() { // Response_v2[] IEnumerable <Response_v2> responses = ReadResponses_v2(); CreateResponsesFile_v2(responses); ExportResponses_v2(responses); // Question_v2[] IEnumerable <Question_v2> questions = ReadQuestions_v2(); CreateQuestionsFile_v2(questions); QuestionResponses.DeleteUnmodifiedQuestionResponseFiles(_directory); CreateQuestionResponseFiles_v2(QuestionResponses.GetQuestionResponses_v2(questions, responses)); }