Added Polls and locking raids if not enough users are signed up

needs testing
This commit is contained in:
t.ruspekhofer 2023-01-03 13:53:26 +01:00
parent 32af72a262
commit ccb276a265
14 changed files with 289 additions and 8 deletions

View file

@ -115,6 +115,26 @@
</label>
</p>
<p>
<label>
Minimal required users:
<InputNumber @bind-Value="_raid.MinUsers" />
</label>
</p>
<p>
<label>
Minimal user deadline date:
<InputDate @bind-Value="_minUserDeadlineDate" />
</label>
</p>
<p>
<label>
Minimal user deadline time:
<input type="time" @bind="_minUserDeadlineTime" />
</label>
</p>
<p>
<label>
Organizer:
@ -194,6 +214,8 @@
private DateTimeOffset _endTime;
private DateTimeOffset _freeForAllDate = DateTime.Now.Date;
private DateTimeOffset _freeForAllTime;
private DateTimeOffset _minUserDeadlineDate = DateTime.Now.Date;
private DateTimeOffset _minUserDeadlineTime;
private List<RaidRole> _rolesToDelete = new List<RaidRole>();
private List<RaidReminder> _remindersToDelete = new List<RaidReminder>();
@ -240,6 +262,8 @@
_raidDate = _startTime.Date;
_freeForAllTime = await TimeZoneService.GetLocalDateTime(_raid.FreeForAllTimeUTC);
_freeForAllDate = _freeForAllTime.Date;
_minUserDeadlineTime = await TimeZoneService.GetLocalDateTime(_raid.MinUserDeadLineUTC);
_minUserDeadlineDate = _minUserDeadlineTime.Date;
foreach(RaidReminder reminder in _raid.Reminders)
{
if(reminder.TimeType == RaidReminder.ReminderTimeType.Static)
@ -337,6 +361,7 @@
_raid.EndTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date.AddDays(1) + _endTime.TimeOfDay);
}
_raid.FreeForAllTimeUTC = await TimeZoneService.GetUTCDateTime(_freeForAllDate.Date + _freeForAllTime.TimeOfDay);
_raid.MinUserDeadLineUTC = await TimeZoneService.GetUTCDateTime(_minUserDeadlineDate.Date + _minUserDeadlineTime.TimeOfDay);
if (!_raid.RaidOwnerId.HasValue)
{

View file

@ -130,6 +130,26 @@
<input type="time" @bind="_freeForAllTime" />
</label>
</p>
<p>
<label>
Minimal required users:
<InputNumber @bind-Value="_template.MinUsers" />
</label>
</p>
<p>
<label>
Minimal user deadline date:
<InputDate @bind-Value="_minUserDeadlineDate" />
</label>
</p>
<p>
<label>
Minimal user deadline time:
<input type="time" @bind="_minUserDeadlineTime" />
</label>
</p>
<p>
<label>
Organizer:
@ -206,7 +226,7 @@
[Parameter]
public string raidId { get; set; }
[Parameter]
public string editType { get; set; }
@ -222,15 +242,17 @@
private DateTimeOffset _endTime;
private DateTimeOffset _freeForAllDate = DateTime.Now.Date;
private DateTimeOffset _freeForAllTime;
private DateTimeOffset _minUserDeadlineDate = DateTime.Now.Date;
private DateTimeOffset _minUserDeadlineTime;
private string _userTimeZone = string.Empty;
private List<RaidRole> _rolesToDelete = new List<RaidRole>();
private List<RaidReminder> _remindersToDelete = new List<RaidReminder>();
private List<DiscordRaidMessage> _messagesToDelete = new List<DiscordRaidMessage>();
private List<StaticRaidReminder> _staticReminders = new List<StaticRaidReminder>();
private List<DynamicRaidReminder> _dynamicReminders = new List<DynamicRaidReminder>();
private List<DiscordServer> _discordServers = new List<DiscordServer>();
private List<LiebRole> _availabeGroups = new List<LiebRole>();
@ -274,6 +296,8 @@
_raidDate = _startTime.Date;
_freeForAllTime = _template.FreeForAllTime;
_freeForAllDate = _freeForAllTime.Date;
_minUserDeadlineTime = _template.MinUserDeadLine;
_minUserDeadlineDate = _minUserDeadlineTime.Date;
foreach(RaidReminder reminder in _template.Reminders)
{
if(reminder.TimeType == RaidReminder.ReminderTimeType.Static)
@ -290,8 +314,8 @@
}
else
{
_template = new RaidTemplate();
_dynamicReminders.Add(DynamicRaidReminder.Create30MinReminder());
_template = new RaidTemplate();
_dynamicReminders.Add(DynamicRaidReminder.Create30MinReminder());
}
}
else
@ -366,6 +390,7 @@
_template.EndTime = _raidDate.Date.AddDays(1) + _endTime.TimeOfDay;
}
_template.FreeForAllTime = _freeForAllDate.Date + _freeForAllTime.TimeOfDay;
_template.MinUserDeadLine = _minUserDeadlineDate.Date + _minUserDeadlineTime.TimeOfDay;
if (!_template.RaidOwnerId.HasValue)
{