Exemplo n.º 1
0
        public IActionResult PostVote([FromBody] VoteCreateDTO voteDTO)
        {
            if (voteDTO == null)
            {
                return(BadRequest(ModelState));
            }

            if (!ModelState.IsValid)
            {
                return(StatusCode(404, ModelState));
            }

            var userName = voteDTO.UserName;

            if (userName != null)
            {
                var userId       = _userRepo.GetUserId(userName);
                var voteToCreate = new Vote()
                {
                    PlayerId          = voteDTO.PlayerId,
                    ApplicationUserId = new Guid(userId)
                };
                _voteRepo.AddVote(voteToCreate);
                _userRepo.AddToUserVoteCount(userId);

                return(Ok(voteToCreate));
            }
            return(BadRequest());
        }
Exemplo n.º 2
0
        public async Task <VoteDTO> Vote(VoteCreateDTO newVote, int tripId)
        {
            using (_unitOfWork)
            {
                Vote    vote    = _mapper.Map <VoteCreateDTO, Vote>(newVote);
                Votable votable = await _unitOfWork.VotableRepository.GetVotableWithVotes(newVote.VotableId);

                if (votable.Votes.Where(x => x.UserId == newVote.UserId).FirstOrDefault() != null)
                {
                    return(null);
                }

                votable.Votes.Add(vote);
                if (newVote.Positive)
                {
                    votable.PositiveVotes++;
                }
                else
                {
                    votable.NegativeVotes++;
                }
                vote.Votable = votable;

                _unitOfWork.VotableRepository.Update(votable);
                await _unitOfWork.VoteRepository.Create(vote);

                await _unitOfWork.Save();

                await _messageControllerService.NotifyOnTripChanges(tripId, "ChangeVotable", _mapper.Map <Votable, VotableDTO>(votable));

                return(_mapper.Map <Vote, VoteDTO>(vote));
            }
        }
Exemplo n.º 3
0
        public async Task PostVote(VoteCreateDTO vote)
        {
            var response = await httpService.Post($"{url}", vote);

            if (!response.Success)
            {
                throw new ApplicationException(await response.GetBody());
            }
        }
        public async Task <ActionResult> Vote(int tripId, [FromBody] VoteCreateDTO newVote)
        {
            try
            {
                if (!await _editRightsService.HasEditRights(tripId))
                {
                    return(BadRequest(new JsonResult("You can't currently edit this trip.")));
                }
                VoteDTO retValue = await _voteService.Vote(newVote, tripId);

                await _editRightsService.ProlongEditRights(tripId, _redisAppSettings.EditRightsProlongedTTL);

                if (retValue == null)
                {
                    return(BadRequest(new JsonResult("You already voted for this item")));
                }
                return(Ok(retValue));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }