示例#1
0
        public async Task <ActionResult <VoteResponseModel> > VotePost(VoteInputModel input)
        {
            var user = await this.usermanager.GetUserAsync(this.User);

            await this.votesService.VoteAsync(input.PostId, user.Id, input.IsUpVote);

            var votes = new VoteResponseModel()
            {
                VotesCount = this.votesService.GetVotes(input.PostId),
            };

            return(votes);
        }
        public async Task <ActionResult <VoteResponseModel> > Post(VoteInputModel input)
        {
            string userId = this.userManager.GetUserId(this.User);

            if (userId == null)
            {
                return(this.Unauthorized());
            }

            Vote     vote     = this.dbContext.Votes.FirstOrDefault(v => v.ArticleId == input.ArticleId && v.AuthorId == userId);
            VoteType voteType = input.IsUp ? VoteType.Up : VoteType.Down;

            var responseModel = new VoteResponseModel
            {
                IsUpvoted   = input.IsUp,
                IsDownvoted = !input.IsUp,
            };

            if (vote == null)
            {
                vote = new Vote
                {
                    Type      = voteType,
                    ArticleId = input.ArticleId,
                    AuthorId  = userId,
                };

                this.dbContext.Votes.Add(vote);
            }
            else
            {
                if (vote.Type == VoteType.Up && input.IsUp || vote.Type == VoteType.Down && !input.IsUp)
                {
                    vote.Type = VoteType.None;
                    responseModel.IsUpvoted   = false;
                    responseModel.IsDownvoted = false;
                }
                else
                {
                    vote.Type = voteType;
                }
            }

            await this.dbContext.SaveChangesAsync();

            responseModel.Upvotes   = this.articlesService.GetUpvotesCount(input.ArticleId);
            responseModel.Downvotes = this.articlesService.GetDownvotesCount(input.ArticleId);

            return(responseModel);
        }
        public async Task <ActionResult <VoteResponseModel> > Post(VoteInputModel input)
        {
            var userId = this.userManager.GetUserId(this.User);

            await this.votesService.VoteAsync(input.VideoId, userId, input.IsUpVote);

            var viewModel = new VoteResponseModel
            {
                UpVotesCount   = this.votesService.GetUpVotes(input.VideoId),
                DownVotesCount = this.votesService.GetDownVotes(input.VideoId),
            };

            return(viewModel);
        }
示例#4
0
        public async Task <ActionResult <VoteResponseModel> > Post(VoteInputModel inputModel)
        {
            var user = await this.userManager.GetUserAsync(this.User);

            await this.votesService.VoteAsync(inputModel.DiseaseId, user.Id, inputModel.IsUpVote);

            var votes = this.votesService.GetVotes(inputModel.DiseaseId);
            VoteResponseModel voteResponseModel = new VoteResponseModel
            {
                VotesCount = votes,
            };

            return(voteResponseModel);
        }
示例#5
0
        public ActionResult Index(VoteResponseModel response)
        {
            if (response == null || response.Token == null)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest));
            }

            var query = db.Participants.Where(p => p.Token.Equals(response.Token, StringComparison.InvariantCultureIgnoreCase));

            if (query == null || query.Count() == 0)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.Unauthorized));
            }
            query.First().IsVoted = false;

            db.Participants.Where(p => p.Id == response.VictimId).First().Rating += 1;


            return(View("Congratulation"));
        }