Ejemplo n.º 1
0
        public async Task ProcessResult(ULearnDb db, UserExerciseSubmission submission, RunningResults result)
        {
            if (!isEnabled)
            {
                return;
            }

            if (result.Verdict != Verdict.Ok)
            {
                return;
            }

            /* Send to antiplagiarism service only accepted submissions */
            var checking = submission.AutomaticChecking;

            if (!checking.IsRightAnswer)
            {
                return;
            }

            var parameters = new AddSubmissionParameters
            {
                TaskId         = submission.SlideId,
                Language       = AntiPlagiarism.Api.Models.Language.CSharp,
                Code           = submission.SolutionCode.Text,
                AuthorId       = Guid.Parse(submission.UserId),
                AdditionalInfo = new AntiPlagiarismAdditionalInfo {
                    SubmissionId = submission.Id
                }.ToJsonString(),
            };

            antiPlagiarismClient.AddSubmissionAsync(parameters).ConfigureAwait(false).GetAwaiter().OnCompleted(() => { });
        }
        public async Task ProcessResult(UserExerciseSubmission submission, RunningResults result)
        {
            if (!isEnabled)
            {
                return;
            }

            if (result.Verdict != Verdict.Ok)
            {
                return;
            }

            /* Send to antiplagiarism service only accepted submissions */
            var checking = submission.AutomaticChecking;

            if (!checking.IsRightAnswer)
            {
                return;
            }

            var parameters = new AddSubmissionParameters
            {
                TaskId         = submission.SlideId,
                Language       = submission.Language,
                Code           = submission.SolutionCode.Text,
                AuthorId       = Guid.Parse(submission.UserId),
                AdditionalInfo = JsonConvert.SerializeObject(new AntiPlagiarismAdditionalInfo {
                    SubmissionId = submission.Id
                }),
                ClientSubmissionId = submission.Id.ToString()
            };
            await antiPlagiarismClient.AddSubmissionAsync(parameters).ConfigureAwait(false);
        }
Ejemplo n.º 3
0
        public async Task ProcessResult(ULearnDb db, UserExerciseSubmission submission, RunningResults result)
        {
            if (!isEnabled)
            {
                return;
            }

            if (result.Verdict != Verdict.Ok)
            {
                return;
            }

            /* Send to antiplagiarism service only accepted submissions */
            var checking = submission.AutomaticChecking;

            if (!checking.IsRightAnswer)
            {
                return;
            }

            var parameters = new AddSubmissionParameters
            {
                TaskId         = submission.SlideId,
                Language       = AntiPlagiarism.Api.Models.Language.CSharp,
                Code           = submission.SolutionCode.Text,
                AuthorId       = Guid.Parse(submission.UserId),
                AdditionalInfo = new AntiPlagiarismAdditionalInfo {
                    SubmissionId = submission.Id
                }.ToJsonString(),
            };
            var antiPlagiarismResult = await antiPlagiarismClient.AddSubmissionAsync(parameters).ConfigureAwait(false);

            log.Info($"Получил ответ от сервиса антиплагиата: {antiPlagiarismResult}");

            var userSolutionsRepo = new UserSolutionsRepo(db, WebCourseManager.Instance);
            await userSolutionsRepo.SetAntiPlagiarismSubmissionId(submission, antiPlagiarismResult.SubmissionId).ConfigureAwait(false);
        }