public int MakeVote(Voter v, Candidate c) { if (restricted) { if (!IsExist(v, RestrictList)) { Log.PrintLog("Voter does not exist in the list."); return -1; } } Vote myVote = new Vote(this, v, c.GetUid()); if (HasVote(v)) { VoteList.Add(myVote); GetVoteByVoter(v).GetCandidate().DeleteVote(); VoteList.Remove(GetVoteByVoter(v)); c.AddVote(myVote); v.voted = c; Log.PrintLog("Already voted. Overwritten."); return 1; } VoteList.Add(myVote); c.AddVote(myVote); v.voted = c; Log.PrintLog("Vote Success. Voter: " + v.GetUid() + " Candidate: " + c.GetUid()); return 0; }