public static async Task GetRawResults() { var students = JsonConvert.DeserializeObject <Dictionary <int, Guid> >(await File.ReadAllTextAsync("D://timusForPlugiarism/students.json")); var tasks = JsonConvert.DeserializeObject <Dictionary <string, Guid> >(await File.ReadAllTextAsync("D://timusForPlugiarism/tasks.json")) .ToDictionary(kvp => { var match = Regex.Match(kvp.Key, @"TaskName { Practice = (\d+), Letter = (\w), language = (\w+) }"); var practice = match.Groups[1].Value; var letter = match.Groups[2].Value; var language = (Language)Enum.Parse(typeof(Language), match.Groups[3].Value); return(new TaskName { Practice = practice, Letter = letter, language = language }); }, kvp => kvp.Value); var antiplagiarismClientConfiguration = ApplicationConfiguration.Read <UlearnConfiguration>().AntiplagiarismClient; var client = new AntiPlagiarismClient(antiplagiarismClientConfiguration.Endpoint, antiplagiarismClientConfiguration.Token); var parsed = await ParseFiles(); var result = new List <PlagiarismsResponse>(); var i = 0; foreach (var(task, student) in parsed.Select(s => (s.Task, s.Student)).Distinct()) { var studentId = students[student]; var taskId = tasks[task]; var authorPlagiarisms = await client.GetAuthorPlagiarismsAsync(new GetAuthorPlagiarismsParameters { TaskId = taskId, AuthorId = studentId }); result.Add(new PlagiarismsResponse { AuthorPlagiarisms = authorPlagiarisms, Student = student, Task = task }); i++; Console.WriteLine(i); } await File.WriteAllTextAsync("D://timusForPlugiarism/plagiarismsResponses.json", JsonConvert.SerializeObject(result, Formatting.Indented)); }
public static async Task UploadSolutions() { var parsed = await ParseFiles(); var tasks = new Dictionary <TaskName, Guid>(); var students = new Dictionary <int, Guid>(); var addSubmissionParameters = parsed.Select(p => { var(task, student, submission, filePath) = p; if (!tasks.ContainsKey(task)) { tasks[task] = Guid.NewGuid(); } if (!students.ContainsKey(student)) { students[student] = Guid.NewGuid(); } return(new AddSubmissionParameters { TaskId = tasks[task], AuthorId = students[student], Code = File.ReadAllText(filePath), Language = task.language, ClientSubmissionId = submission }); }).ToList(); await File.WriteAllTextAsync("D://timusForPlugiarism/students.json", JsonConvert.SerializeObject(students, Formatting.Indented)); await File.WriteAllTextAsync("D://timusForPlugiarism/tasks.json", JsonConvert.SerializeObject(tasks, Formatting.Indented)); var antiplagiarismClientConfiguration = ApplicationConfiguration.Read <UlearnConfiguration>().AntiplagiarismClient; var client = new AntiPlagiarismClient(antiplagiarismClientConfiguration.Endpoint, antiplagiarismClientConfiguration.Token); foreach (var p in addSubmissionParameters) { await client.AddSubmissionAsync(p); } }