Exemplo n.º 1
0
        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,
            });
        }
Exemplo n.º 2
0
        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,
            });
        }