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