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(); }
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); } }