コード例 #1
0
        public void SaveDuelSolution(int competitionId, string source, string userEmail, int language, bool resultCorrect)
        {
            var solution = _duelRepository.GetSolution(competitionId, userEmail);

            if (solution != null && solution.IsCorrect)
            {
                throw new Exception($"You can't save solved solution. User: {userEmail}. CompetitionId: {competitionId}.");
            }

            if (solution == null)
            {
                solution = new DuelSolution
                {
                    UserEmail = userEmail,
                    DuelId    = competitionId,
                    IsCorrect = resultCorrect,
                    Language  = language,
                    Source    = source
                };
            }
            else
            {
                solution.IsCorrect = resultCorrect;
                solution.Source    = source;
                solution.Language  = language;
            }

            _duelRepository.UpsertSolution(solution);
        }
コード例 #2
0
 public void UpsertSolution(DuelSolution solution)
 {
     _dbContext.Entry(solution).State = solution.DuelSolutionId == 0 ?
                                        EntityState.Added :
                                        EntityState.Modified;
     _dbContext.SaveChanges();
 }