示例#1
0
        public async Task TestInsertUpdateVote()
        {
            try
            {
                // now add a vote for candidate1
                Vote vote = new Vote()
                {
                    ElectionId     = DefaultElectionId,
                    BallotId       = Guid.NewGuid(),
                    CategoryId     = PresCategoryId,
                    CategoryTypeId = 2,
                    SelectionId    = BidenTicketId,
                    VoteStatus     = 0,
                    ApprovalDate   = DateTime.Now
                };
                UOW.BeginTransaction();
                Vote inserted = await voteRepository.Insert(UOW, vote);

                Assert.IsNotNull(inserted);
                Assert.IsTrue(inserted.Id != Guid.Empty, "Expect inserted vote Id not be empty");
                // now change the ballot selection to candidate2
                vote.Id         = inserted.Id;
                vote.VoteStatus = (int)VoteStatusEnum.choiceRejected;

                Vote updated = await voteRepository.Update(UOW, vote);

                Assert.IsNotNull(updated);
                Assert.IsTrue(inserted.Id == updated.Id, "Expect inserted and updated Id to be the same");
                UOW.CloseTransaction();
            }
            catch (Exception ex)
            {
                Assert.IsNull(ex, "Exception Thrown: " + ex.Message);
            }
        }
示例#2
0
        public bool Update(VoteDTO user)
        {
            bool b1 = ur.Update(Mapper.Map <VoteEntity>(user));

            if (b1)
            {
                if (user.vote != true)
                {
                    ar.IncrementVotess(user.answerId);
                }
                else
                {
                    ar.DecrementVotess(user.answerId);
                }
            }

            return(b1);
        }
示例#3
0
 /// <summary>
 /// Put API/Vote/{id}
 /// </summary>
 /// <param name="Vote">Vote à insérer</param>
 /// <param name="Id">Id du Vote à Updateier</param>
 public IHttpActionResult Put(int Id, VoteModel Vote)
 {
     if ((new[] { "Admin", "User" }).Contains(ValidateTokenAndRole.ValidateAndGetRole(Request), StringComparer.OrdinalIgnoreCase))
     {
         if (repo.GetOne(Id) == null)
         {
             return(NotFound());
         }
         else if (Vote == null || Vote.Strategy.Id == 0 || Vote.User.Id == 0)
         {
             return(BadRequest());
         }
         else
         {
             repo.Update(Id, Vote.ToEntity());
             return(Ok());
         }
     }
     else
     {
         return(Unauthorized());
     }
 }
示例#4
0
        internal void Vote(string debate_id, string voteCasted, string userVoting)
        {
            Vote vote = new DatabaseAccess.Vote();

            vote.debate_id     = int.Parse(debate_id);
            vote.user_username = userVoting;
            if (voteCasted == "pro")
            {
                vote.vote_pro = true;
            }
            else
            {
                vote.vote_pro = false;
            }

            try
            {
                Vote debateVote = _voteRepository.GetDebateVote(int.Parse(debate_id), userVoting);
                if (debateVote.vote_pro == vote.vote_pro)
                {
                    _voteRepository.Delete(debateVote.vote_id);
                }
                else
                {
                    debateVote.vote_pro = vote.vote_pro;
                    _voteRepository.Update(debateVote);
                }
            }
            catch (VoteException vex)
            {
                if (vex.Message == "333")
                {
                    _voteRepository.Add(vote);
                }
            }
        }