private Plagiarism BuildPlagiarismInfo(Submission submission, double weight, List <MatchedSnippet> matchedSnippets) { var codeUnits = codeUnitsExtractor.Extract(submission.ProgramText); return(new Plagiarism { SubmissionInfo = submission.GetSubmissionInfoForApi(), Weight = weight, AnalyzedCodeUnits = codeUnits.Select( u => new AnalyzedCodeUnit { Name = u.Path.ToString(), FirstTokenIndex = u.FirstTokenIndex, TokensCount = u.Tokens.Count, }).ToList(), TokensPositions = GetNeededTokensPositions(codeUnits), MatchedSnippets = matchedSnippets, }); }
private Plagiarism BuildPlagiarismInfo(Submission submission, double weight, List <MatchedSnippet> matchedSnippets) { /* We do TrimStart() because of issue in a way of passing code to codemirror on ulearn's frontend. We insert data into <textarea> which loses first spaces. * We can remove it after migrating to new, React-based frontend. */ var codeUnits = codeUnitsExtractor.Extract(submission.ProgramText.TrimStart()); return(new Plagiarism { SubmissionInfo = submission.GetSubmissionInfoForApi(), Weight = weight, AnalyzedCodeUnits = codeUnits.Select( u => new AnalyzedCodeUnit { Name = u.Path.ToString(), FirstTokenIndex = u.FirstTokenIndex, TokensCount = u.Tokens.Count, }).ToList(), TokensPositions = GetNeededTokensPositions(codeUnits), MatchedSnippets = matchedSnippets, }); }