Пример #1
0
 public void fixed_test_19()
 {
     Assert.AreEqual(UserSolution.OddRow(19), new long[]
     {
         343, 345, 347, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379
     });
 }
Пример #2
0
        private async Task <UserSolution> UpdateSubmission(UserSolution submission, RunningResults result)
        {
            var compilationErrorHash = (await textsRepo.AddText(result.CompilationOutput)).Hash;
            var outputHash           = (await textsRepo.AddText(result.GetOutput().NormalizeEoln())).Hash;

            var webRunner     = submission.CourseId == "web" && submission.SlideId == "runner";
            var exerciseSlide = webRunner ? null : ((ExerciseSlide)courseManager.GetCourse(submission.CourseId).GetSlideById(submission.SlideId));
            var updated       = new UserSolution
            {
                Id = submission.Id,
                SolutionCodeHash     = submission.SolutionCodeHash,
                CompilationErrorHash = compilationErrorHash,
                CourseId             = submission.CourseId,
                SlideId            = submission.SlideId,
                IsCompilationError = result.Verdict == Verdict.CompilationError,
                IsRightAnswer      = result.Verdict == Verdict.Ok &&
                                     (webRunner || exerciseSlide.Exercise.ExpectedOutput.NormalizeEoln() == result.GetOutput().NormalizeEoln()),
                OutputHash           = outputHash,
                Timestamp            = submission.Timestamp,
                UserId               = submission.UserId,
                CodeHash             = submission.CodeHash,
                Likes                = submission.Likes,
                ExecutionServiceName = submission.ExecutionServiceName,
                Status               = SubmissionStatus.Done,
                DisplayName          = submission.DisplayName,
                Elapsed              = DateTime.Now - submission.Timestamp
            };

            return(updated);
        }
Пример #3
0
 public void fixed_test_13()
 {
     Assert.AreEqual(UserSolution.OddRow(13), new long[]
     {
         157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181
     });
 }
Пример #4
0
 public void DeleteUserSolution(UserSolution userSolution)
 {
     if (userSolution == null)
     {
         return;
     }
     context.UserSolutions.Remove(userSolution);
     context.SaveChanges();
 }
Пример #5
0
 public void SaveUserSolution(UserSolution userSolution)
 {
     if (userSolution == null)
     {
         return;
     }
     context.UserSolutions.Add(userSolution);
     context.SaveChanges();
 }
Пример #6
0
 public void fixed_test_41()
 {
     Assert.AreEqual(UserSolution.OddRow(41), new long[]
     {
         1641, 1643, 1645, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665, 1667, 1669,
         1671, 1673, 1675, 1677, 1679, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699,
         1701, 1703, 1705, 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721
     });
 }
Пример #7
0
 private RunnerSubmition ToRunnerSubmition(UserSolution details)
 {
     return(new RunnerSubmition
     {
         Id = details.Id.ToString(),
         Code = Utils.GetSource(
             details.CourseId,
             details.SlideId,
             courseManager,
             details.SolutionCode.Text
             ),
         Input = "",
         NeedRun = true
     });
 }
 /// <summary>
 /// 转换为用户解决方案数据传输对象
 /// </summary>
 /// <param name="entity">用户解决方案实体</param>
 public static UserSolutionDto ToDto(this UserSolution entity)
 {
     if (entity == null)
     {
         return(new UserSolutionDto());
     }
     return(new UserSolutionDto {
         Id = entity.Id.ToString(),
         SolutionId = entity.SolutionId,
         UserId = entity.UserId,
         IsAdmin = entity.IsAdmin,
         Enabled = entity.Enabled,
         Version = entity.Version,
         CreationTime = entity.CreationTime,
         CreatorId = entity.CreatorId,
         LastModificationTime = entity.LastModificationTime,
         LastModifierId = entity.LastModifierId,
     });
 }
Пример #9
0
        public UserSolution FindUserSolutionByIdentifiers(int userId, int positionId)
        {
            var userSolution = context.UserSolutions.Include(x => x.User).FirstOrDefault(x => x.User.ID == userId && x.Problem.ID == positionId);

            if (userSolution == null)
            {
                userSolution = new UserSolution
                {
                    NumberOfAttempts = 0,
                    CurrentMove      = 0,
                    DateCreated      = DateTime.Now,
                    User             = context.Users.Find(userId),
                    Problem          = context.Positions.Find(positionId)
                };
                context.UserSolutions.Add(userSolution);
                context.SaveChanges();
            }
            return(userSolution);
        }
Пример #10
0
        public void UpdateUserSolution(UserSolution userSolution)
        {
            if (userSolution == null)
            {
                return;
            }
            var oldUserSolution = context.UserSolutions.Find(userSolution.ID);

            if (oldUserSolution == null)
            {
                return;
            }
            oldUserSolution.CurrentMove      = userSolution.CurrentMove;
            oldUserSolution.NumberOfAttempts = userSolution.NumberOfAttempts;
            oldUserSolution.Problem          = userSolution.Problem;
            oldUserSolution.User             = userSolution.User;
            oldUserSolution.IsSolved         = userSolution.IsSolved;
            oldUserSolution.DateCreated      = userSolution.DateCreated;
            oldUserSolution.DateUpdated      = userSolution.DateUpdated;
            context.SaveChanges();
        }
Пример #11
0
 public void Delete(UserSolution userSolution)
 {
     db.UserSolutions.Remove(userSolution);
     db.SaveChanges();
 }
Пример #12
0
 protected void Save(UserSolution solution)
 {
     db.UserSolutions.AddOrUpdate(solution);
     db.SaveChanges();
 }
Пример #13
0
 public void fixed_test_1()
 {
     Assert.AreEqual(UserSolution.OddRow(1), new long[] { 1 });
 }
Пример #14
0
 public void fixed_test_2()
 {
     Assert.AreEqual(UserSolution.OddRow(2), new long[] { 3, 5 });
 }