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); }
public void UpsertSolution(DuelSolution solution) { _dbContext.Entry(solution).State = solution.DuelSolutionId == 0 ? EntityState.Added : EntityState.Modified; _dbContext.SaveChanges(); }