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);
                }
            }
        }