private void RunButton_OnClick(object sender, RoutedEventArgs e)
        {
            using (var logFile = LogFile.CreateAt(DesktopPath))
            {
                logFile.WriteLine("Automatic Hw Checker, " + DateTime.Now.ToLongDateString());


                logFile.WriteLine();

                logFile.WriteLine("Input-Output Files:");
                logFile.IncorporateTab();
                logFile.WriteLine("Directory: " + InputOutputDirectoryPath);
                var inputOutputPairs = InputOutput.ParseOfDirectory(InputOutputDirectoryPath);
                inputOutputPairs.Select(x => x.AsString()).ForEach(logFile.WriteLine);
                logFile.UncorporateTab();

                logFile.WriteLine();

                RenameToEnglish(HomeworkSolutionsDirectoryPath);

                logFile.WriteLine("Checking Files:");
                logFile.IncorporateTab();
                var studentsResults = CheckingOperation.CheckHw(HomeworkSolutionsDirectoryPath, inputOutputPairs, logFile);
                logFile.UncorporateTab();


                logFile.WriteLine("Publishing CSV result at: " + CsvResultPath);
                File.WriteAllLines(CsvResultPath, StudentsAnswers.ToCsvLines(studentsResults, inputOutputPairs));
                Process.Start(CsvResultPath);


                var cFilesDir = Path.Combine(DesktopPath, "cFiles");
                Directory.CreateDirectory(cFilesDir);
                var rnd = new Random();
                studentsResults.Where(r => r.cFilePath != null)
                .Select(r => r.cFilePath).ForEach(sourcePath =>
                {
                    var resultPath = Path.Combine(cFilesDir, Path.GetFileNameWithoutExtension(sourcePath) + "_" + rnd.Next() + ".c");
                    File.Copy(sourcePath, resultPath);
                });


                logFile.WriteLine();
                logFile.WriteLine("Finished Successfully");
            }
        }
 public static StudentsAnswers[] CheckHw(string hwsDirectoryLocation, InputOutput[] inputOutputPairs, LogFile logFile)
 => Directory.EnumerateDirectories(hwsDirectoryLocation)
 .Select(dirPath => StudentsAnswers.OfDirPath(dirPath, inputOutputPairs, logFile))
 .Where(x => x != null)
 .ToArray();