Lieb-Website/Lieb/Pages/Poll/PollDetails.razor
Sarah Faey 7e87500992 reformated PollOptions
used HashSet for PollUsers
2023-01-15 10:53:23 +01:00

68 lines
1.8 KiB
Text

@using System.Security.Claims
@using Lieb.Data
@using Lieb.Models
@using Lieb.Models.Poll
@using Lieb.Models.GuildWars2.Raid
@inject UserService UserService
@inject RaidService RaidService
@inject TimeZoneService TimeZoneService
@inject RaidRandomizerService RaidRandomizerService
@inject NavigationManager NavigationManager
<body>
<div @onclick="() => _isCollapsed = !_isCollapsed">
<h5>@_poll.Question</h5>
@if(_raid != null)
{
<p>@_raid.Title - @_raid.StartTimeUTC.DateTime.ToLongDateString()</p>
}
@if (!_isCollapsed)
{
@foreach(var answer in Answers)
{
<p>@answer.Key - @answer.Value </p>
}
}
<br/>
<p>Not Answered - @_poll.Answers.Where(a => string.IsNullOrWhiteSpace(a.Answer)).Count() </p>
</div>
</body>
@code {
[Parameter]
public Poll _poll { get; set; }
[Parameter]
public LiebUser? _user { get; set; }
private Raid _raid { get; set; }
private bool _isCollapsed = true;
private Dictionary<string, int> Answers = new Dictionary<string, int>();
protected override async Task OnParametersSetAsync()
{
if(_poll.RaidId.HasValue)
{
_raid = RaidService.GetRaid(_poll.RaidId.Value);
}
foreach(PollOption option in _poll.Options)
{
if(!Answers.ContainsKey(option.Name))
Answers.Add(option.Name, 0);
}
foreach(PollAnswer answer in _poll.Answers)
{
if(!string.IsNullOrWhiteSpace(answer.Answer))
{
if(!Answers.ContainsKey(answer.Answer))
Answers.Add(answer.Answer, 0);
Answers[answer.Answer] ++;
}
}
}
}