@page "/raidedit"
@page "/raidedit/{raidId}"
@using Lieb.Data
@using Lieb.Models
@using Lieb.Models.GuildWars2.Raid
@using System.ComponentModel.DataAnnotations
@inject RaidService RaidService
@inject UserService UserService
@inject TimeZoneService TimeZoneService
@inject NavigationManager NavigationManager
@inject IJSRuntime JsRuntime
CreateRaid
@{
bool _isEdit = _raid.RaidId != 0;
}
@if(_raid.RaidType == RaidType.Planned)
{
Spots |
Role name |
Description |
@foreach( PlannedRaidRole role in _raid.Roles)
{
bool disableEdit = _raid.SignUps.Where(s => s.PlannedRaidRoleId == role.PlannedRaidRoleId).Any();
|
|
|
@if(!disableEdit)
{
|
}
}
}
@code {
[Parameter]
public string raidId { get; set; }
public Raid _raid;
private string _errorMessage = string.Empty;
private DateTimeOffset _raidDate = DateTime.Now.Date;
private DateTimeOffset _startTime;
private DateTimeOffset _endTime;
private DateTimeOffset _freeForAllDate = DateTime.Now.Date;
private DateTimeOffset _freeForAllTime;
protected override async Task OnInitializedAsync()
{
if(!string.IsNullOrEmpty(raidId) && int.TryParse(raidId, out int parsedId))
{
_raid = RaidService.GetRaid(parsedId);
_startTime = await TimeZoneService.GetLocalDateTime(_raid.StartTimeUTC);
_endTime = await TimeZoneService.GetLocalDateTime(_raid.EndTimeUTC);
_raidDate = _startTime.Date;
_freeForAllTime = await TimeZoneService.GetLocalDateTime(_raid.FreeForAllTimeUTC);
_freeForAllDate = _freeForAllTime.Date;
}
else
{
_raid = new Raid();
}
}
async Task AddRoleClicked()
{
_raid.Roles.Add(new PlannedRaidRole());
}
async Task DeleteRoleClicked(PlannedRaidRole role)
{
_raid.Roles.Remove(role);
}
async Task DeleteRaidClicked()
{
bool confirmed = await JsRuntime.InvokeAsync("confirm", "Are you sure you want to delete the raid?");
if (confirmed)
{
await RaidService.DeleteRaid(_raid.RaidId);
NavigationManager.NavigateTo("raidoverview");
}
}
private async Task HandleValidSubmit()
{
if(_raid.RaidType != RaidType.Planned)
{
_raid.Roles.Clear();
_raid.Roles.Add(new PlannedRaidRole()
{
Spots = 10,
Name = "Random",
Description = _raid.RaidType.ToString()
});
}
if(_raid.Roles.Count == 0)
{
_errorMessage = "Roles are needed for a raid.";
return;
}
//_raid.TimeZone = await TimeZoneService.GetUserTimeZone();
_raid.StartTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date + _startTime.TimeOfDay);
if(_startTime.TimeOfDay > _endTime.TimeOfDay)
{
_raid.EndTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date + _endTime.TimeOfDay);
}
else
{
_raid.EndTimeUTC = await TimeZoneService.GetUTCDateTime(_raidDate.Date.AddDays(1) + _endTime.TimeOfDay);
}
_raid.FreeForAllTimeUTC = await TimeZoneService.GetUTCDateTime(_freeForAllDate.Date + _freeForAllTime.TimeOfDay);
await RaidService.AddOrEditRaid(_raid);
NavigationManager.NavigateTo("raidoverview");
}
}