added multi day raids

This commit is contained in:
Sarah Faey 2023-02-14 20:18:45 +01:00
parent 00a038ae15
commit 922bef0ddf
6 changed files with 131 additions and 25 deletions

View file

@ -66,13 +66,38 @@
</InputSelect>
</label>
</p>
<p>
<label>
Date:
<InputDate @bind-Value="_raidDate" />
<InputCheckbox @bind-Value="_isMultiDay" />
Multi day raid
</label>
</p>
@if(_isMultiDay)
{
<p>
<label>
Start date:
<InputDate @bind-Value="_raidDate" />
</label>
</p>
<p>
<label>
End date:
<InputDate @bind-Value="_endDate" />
</label>
</p>
}
else
{
<p>
<label>
Date:
<InputDate @bind-Value="_raidDate" />
</label>
</p>
}
<p>
<label>
@ -209,7 +234,9 @@
private string _errorMessage = string.Empty;
private int _randomSpots = 10;
private bool _isMultiDay = false;
private DateTimeOffset _raidDate = DateTime.Now.Date;
private DateTimeOffset _endDate = DateTime.Now.Date;
private DateTimeOffset _startTime;
private DateTimeOffset _endTime;
private DateTimeOffset _freeForAllDate = DateTime.Now.Date;
@ -260,10 +287,12 @@
_startTime = await TimeZoneService.GetLocalDateTime(_raid.StartTimeUTC);
_endTime = await TimeZoneService.GetLocalDateTime(_raid.EndTimeUTC);
_raidDate = _startTime.Date;
_endDate = _endTime.Date;
_freeForAllTime = await TimeZoneService.GetLocalDateTime(_raid.FreeForAllTimeUTC);
_freeForAllDate = _freeForAllTime.Date;
_minUserDeadlineTime = await TimeZoneService.GetLocalDateTime(_raid.MinUserDeadLineUTC);
_minUserDeadlineDate = _minUserDeadlineTime.Date;
_isMultiDay = _endTime - _startTime > new TimeSpan(24,0,0);
foreach(RaidReminder reminder in _raid.Reminders)
{
if(reminder.TimeType == RaidReminder.ReminderTimeType.Static)
@ -351,8 +380,18 @@
return;
}
if(_isMultiDay && _endDate <= _raidDate)
{
_errorMessage = "The end date has to be after the start date.";
return;
}
_raid.StartTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date + _startTime.TimeOfDay);
if(_startTime.TimeOfDay <= _endTime.TimeOfDay)
if(_isMultiDay)
{
_raid.EndTimeUTC = await TimeZoneService.GetUTCDateTime(_endDate.Date + _endTime.TimeOfDay);
}
else if(_startTime.TimeOfDay <= _endTime.TimeOfDay)
{
_raid.EndTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date + _endTime.TimeOfDay);
}