コード例 #1
0
        private async Task SetBallotAsync(VoterModel voter)
        {
            _ballot = await _ballotService.GetBallotAsync(_currentElection, _voter);

            tbkBallotCode.Text = _ballot.Code;
            tbkVoterID.Text    = _voter.Vin;
            tbkFullName.Text   = _ballot.EnteredAt.ToString("yyyy-MM-dd hh:mm:ss tt");

            await LoadCandidatesAsync();
        }
コード例 #2
0
        private async void btnCast_Click(object sender, RoutedEventArgs e)
        {
            G.WaitLang(this);
            try
            {
                var votes = new List <VoteModel>();
                foreach (var candidate in ListVotedCandidates)
                {
                    if (candidate.Id != 0)
                    {
                        votes.Add(new VoteModel
                        {
                            BallotId    = BallotId,
                            CandidateId = candidate.Id
                        });
                    }
                }

                await _ballotService.CastVotesAsync(BallotId, votes);

                var ballot = await _ballotService.GetBallotAsync(BallotId);

                G.EndWait(this);

                var messageBuilder = new StringBuilder();
                messageBuilder.AppendLine("Your votes have been casted.");
                messageBuilder.AppendLine("Thank you for your participation :D");
                messageBuilder.AppendLine();
                messageBuilder.AppendLine($"Ballot Code:\t{ ballot.Code }");
                messageBuilder.AppendLine($"Voter ID:\t\t{ Voter.Vin }");
                messageBuilder.AppendLine();
                messageBuilder.AppendLine($"Started At:\t{ ballot.EnteredAt.ToString("yyyy-MM-dd hh:mm:ss tt") }");
                messageBuilder.AppendLine($"Casted At:\t{ ballot.CastedAt?.ToString("yyyy-MM-dd hh:mm:ss tt") }");
                var duration = ballot.CastedAt.Value.Subtract(ballot.EnteredAt);
                messageBuilder.AppendLine($"Duration:\t{ TimeSpan.FromSeconds(duration.TotalSeconds).Humanize(minUnit: TimeUnit.Second) }");

                MessageBox.Show(messageBuilder.ToString(), "Votes Casted", MessageBoxButton.OK, MessageBoxImage.Information);
                IsCasted = true;

                Close();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);

                G.EndWait(this);

                MessageBox.Show(ex.GetBaseException().Message, "PROGRAM ERROR: " + ex.Source, MessageBoxButton.OK, MessageBoxImage.Stop);
            }
        }