private async Task DoVoteAgainst(string id) { var user = GetAuthenticatedUser(); var result = new ProjectVoteEntity { ProjectId = id, VoterUserId = user.Email, ForAgainst = -1, UserAgent = HttpContext.Request.Headers["User-Agent"].ToString() }; var vote = await _voteRepository.GetAsync(id, user.Email); if (vote == null) { await _voteRepository.SaveAsync(result); var project = await _projectRepository.GetAsync(id); project.VotesAgainst += 1; await _projectRepository.UpdateAsync(project); } else { await _voteRepository.UpdateAsync(result); if (vote.ForAgainst == 1) { var project = await _projectRepository.GetAsync(id); project.VotesAgainst += 1; project.VotesFor -= 1; await _projectRepository.UpdateAsync(project); } } }
private async Task DoVoteFor(string id) { var user = GetAuthenticatedUser(); var result = new ProjectVoteEntity { ProjectId = id, VoterUserId = user.Email, ForAgainst = 1 }; var vote = await _voteRepository.GetAsync(id, user.Email); if (vote == null) { await _voteRepository.SaveAsync(result); var project = await _projectRepository.GetAsync(id); project.VotesFor += 1; await _projectRepository.UpdateAsync(project); } else { await _voteRepository.UpdateAsync(result); if (vote.ForAgainst == -1) { var project = await _projectRepository.GetAsync(id); project.VotesFor += 1; project.VotesAgainst -= 1; await _projectRepository.UpdateAsync(project); } } }