예제 #1
0
        public void AddAWriteInCanididate()
        {
            var _context = new VotingContext();
            var _manager = new VotingManager();

            var builder = new RankingVoteTicketBuilder();

            var RankingVoteItem = new RankingVoteItem
            {
                RankingVoteItemId  = Guid.NewGuid(),
                PrimeCandidateItem = new VotingApp.Models.CandidateItem()
                {
                    CandidateId = Guid.NewGuid(),
                    Name        = "Test",
                    JobId       = Guid.Parse("521C573E-91E8-47CA-ACBC-BF3D63706F29")
                },
                SubCandidateItem = new VotingApp.Models.CandidateItem()
                {
                    CandidateId = Guid.NewGuid(),
                    Name        = "Vice Test",
                    JobId       = Guid.Parse("057A2ED5-CDE9-44DB-9697-041B0F09555F")
                },
                Ranking = 1
            };

            _manager.Context.RankingVotes.Add(builder.GetEntity(RankingVoteItem));
            _manager.Context.SaveChanges();
        }
예제 #2
0
        private CandidateItem CheckForExistingPrimeCandidate(RankingVoteItem voteItem, RankingVoteItem existingVoteItem)
        {
            var existingPrimeWriteIn =
                Context.Candidates.FirstOrDefault(x => x.Name == voteItem.PrimeCandidateItem.Name &&
                                                  x.JobId == existingVoteItem.PrimeCandidateItem.JobId);

            var builder = new CandidateBuilder();

            CandidateItem primeCandidateItem;


            if (existingPrimeWriteIn != null)
            {
                primeCandidateItem = builder.GetModel(existingPrimeWriteIn);
            }
            else
            {
                primeCandidateItem = new CandidateItem()
                {
                    CandidateId = Guid.NewGuid(),
                    Name        = voteItem.PrimeCandidateItem.Name,
                    JobId       = existingVoteItem.PrimeCandidateItem.JobId
                };
            }
            return(primeCandidateItem);
        }
 public RankingVote GetEntity(RankingVoteItem rankingVote)
 {
     return(new RankingVote()
     {
         RankingVoteId = rankingVote.RankingVoteItemId,
         PrimeCandidate = CandidateBuilder.GetEntity(rankingVote.PrimeCandidateItem),
         SubCandidate = CandidateBuilder.GetEntity(rankingVote.SubCandidateItem),
         IsWriteIn = rankingVote.IsWriteIn
     });
 }
예제 #4
0
        public List <VoteResult> AddRankingWriteInToElection(List <VoteResult> electionResults, RankingVoteItem voteItem, Guid ballotId, RankingVoteItem existingVoteItem)
        {
            var primeCandidateItem = CheckForExistingPrimeCandidate(voteItem, existingVoteItem);
            var subCandidateItem   = CheckForExistingSubCandidate(voteItem, existingVoteItem);

            var rankingVoteId =
                Context.RankingVotes.FirstOrDefault(x => x.PrimeCandidateId == primeCandidateItem.CandidateId ||
                                                    x.SubCandidateId == subCandidateItem.CandidateId);

            if (rankingVoteId == null)
            {
                var rankingVoteItem = new RankingVoteItem
                {
                    RankingVoteItemId  = Guid.NewGuid(),
                    PrimeCandidateItem = primeCandidateItem,
                    SubCandidateItem   = subCandidateItem,
                    IsWriteIn          = true
                };
                var builder = new RankingVoteTicketBuilder();
                Context.RankingVotes.Add(builder.GetEntity(rankingVoteItem));
                Context.SaveChanges();
                electionResults.Add(new VoteResult
                {
                    VoteResultsId = Guid.NewGuid(),
                    BallotId      = ballotId,
                    RankingVoteId = rankingVoteItem.RankingVoteItemId,
                    Ranking       = voteItem.Ranking,
                });
            }
            else
            {
                electionResults.Add(new VoteResult
                {
                    VoteResultsId = Guid.NewGuid(),
                    BallotId      = ballotId,
                    RankingVoteId = rankingVoteId.RankingVoteId,
                    Ranking       = voteItem.Ranking,
                });
            }



            return(electionResults);
        }