added copy template function
This commit is contained in:
parent
1ac6cc64a6
commit
83f9b2d0b8
4 changed files with 41 additions and 4 deletions
|
@ -18,7 +18,7 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
|
|
||||||
public Raid() { }
|
public Raid() { }
|
||||||
|
|
||||||
public Raid(RaidTemplate template) : base(template, template.TimeZone)
|
public Raid(RaidTemplate template) : base(template, template.TimeZone, true)
|
||||||
{
|
{
|
||||||
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(template.TimeZone);
|
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(template.TimeZone);
|
||||||
StartTimeUTC = TimeZoneInfo.ConvertTimeToUtc(template.StartTime, timeZone);
|
StartTimeUTC = TimeZoneInfo.ConvertTimeToUtc(template.StartTime, timeZone);
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
|
|
||||||
public RaidBase() { }
|
public RaidBase() { }
|
||||||
|
|
||||||
public RaidBase(RaidBase template, string timeZoneString)
|
public RaidBase(RaidBase template, string timeZoneString, bool convertTimeForRaid)
|
||||||
{
|
{
|
||||||
this.Title = template.Title;
|
this.Title = template.Title;
|
||||||
this.Description = template.Description;
|
this.Description = template.Description;
|
||||||
|
@ -88,11 +88,17 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneString);
|
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneString);
|
||||||
foreach (RaidReminder reminder in template.Reminders)
|
foreach (RaidReminder reminder in template.Reminders)
|
||||||
{
|
{
|
||||||
|
DateTimeOffset reminderTime = reminder.ReminderTimeUTC;
|
||||||
|
if(convertTimeForRaid)
|
||||||
|
{
|
||||||
|
reminderTime = TimeZoneInfo.ConvertTimeToUtc(reminder.ReminderTimeUTC.DateTime, timeZone);
|
||||||
|
}
|
||||||
|
|
||||||
this.Reminders.Add(new RaidReminder()
|
this.Reminders.Add(new RaidReminder()
|
||||||
{
|
{
|
||||||
DiscordServerId = reminder.DiscordServerId,
|
DiscordServerId = reminder.DiscordServerId,
|
||||||
DiscordChannelId = reminder.DiscordChannelId,
|
DiscordChannelId = reminder.DiscordChannelId,
|
||||||
ReminderTimeUTC = TimeZoneInfo.ConvertTimeToUtc(reminder.ReminderTimeUTC.DateTime, timeZone),
|
ReminderTimeUTC = reminderTime,
|
||||||
Message = reminder.Message,
|
Message = reminder.Message,
|
||||||
Sent = false,
|
Sent = false,
|
||||||
Type = reminder.Type,
|
Type = reminder.Type,
|
||||||
|
|
|
@ -19,5 +19,17 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
public int Interval { get; set; }
|
public int Interval { get; set; }
|
||||||
|
|
||||||
public int CreateDaysBefore { get; set; }
|
public int CreateDaysBefore { get; set; }
|
||||||
|
|
||||||
|
public RaidTemplate() { }
|
||||||
|
|
||||||
|
public RaidTemplate(RaidTemplate template) : base(template, template.TimeZone, false)
|
||||||
|
{
|
||||||
|
StartTime = template.StartTime;
|
||||||
|
EndTime = template.EndTime;
|
||||||
|
FreeForAllTime = template.FreeForAllTime;
|
||||||
|
TimeZone = template.TimeZone;
|
||||||
|
Interval = template.Interval;
|
||||||
|
CreateDaysBefore = template.CreateDaysBefore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
@page "/raidtemplateedit"
|
@page "/raidtemplateedit"
|
||||||
@page "/raidtemplateedit/{raidId}"
|
@page "/raidtemplateedit/{raidId}"
|
||||||
|
@page "/raidtemplateedit/{raidId}/{editType}"
|
||||||
@using Lieb.Data
|
@using Lieb.Data
|
||||||
@using Lieb.Models
|
@using Lieb.Models
|
||||||
@using Lieb.Models.GuildWars2.Raid
|
@using Lieb.Models.GuildWars2.Raid
|
||||||
|
@ -39,7 +40,7 @@
|
||||||
<p>
|
<p>
|
||||||
<label>
|
<label>
|
||||||
Raid Type:
|
Raid Type:
|
||||||
<InputSelect @bind-Value="_template.RaidType" disabled="@_isEdit">
|
<InputSelect @bind-Value="_template.RaidType" disabled="@(!_editType && _isEdit)">
|
||||||
<option value="@RaidType.Planned">Planned</option>
|
<option value="@RaidType.Planned">Planned</option>
|
||||||
<option value="@RaidType.RandomWithBoons">Random with boons covered</option>
|
<option value="@RaidType.RandomWithBoons">Random with boons covered</option>
|
||||||
<option value="@RaidType.RandomClasses">Random classes</option>
|
<option value="@RaidType.RandomClasses">Random classes</option>
|
||||||
|
@ -198,6 +199,7 @@
|
||||||
</EditForm>
|
</EditForm>
|
||||||
<br/>
|
<br/>
|
||||||
<button type="delete" @onclick="() => DeleteRaidClicked()">Delete Template</button>
|
<button type="delete" @onclick="() => DeleteRaidClicked()">Delete Template</button>
|
||||||
|
<button type="copy" @onclick="() => CopyTemplate()">Copy Template</button>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
@ -205,8 +207,12 @@
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public string raidId { get; set; }
|
public string raidId { get; set; }
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public string editType { get; set; }
|
||||||
|
|
||||||
public RaidTemplate _template;
|
public RaidTemplate _template;
|
||||||
private LiebUser _user;
|
private LiebUser _user;
|
||||||
|
private bool _editType = false;
|
||||||
|
|
||||||
private string _errorMessage = string.Empty;
|
private string _errorMessage = string.Empty;
|
||||||
|
|
||||||
|
@ -241,6 +247,11 @@
|
||||||
NavigationManager.NavigateTo("");
|
NavigationManager.NavigateTo("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!string.IsNullOrEmpty(editType) && bool.TryParse(editType, out bool allowEdit))
|
||||||
|
{
|
||||||
|
_editType = allowEdit;
|
||||||
|
}
|
||||||
|
|
||||||
if(!string.IsNullOrEmpty(raidId) && int.TryParse(raidId, out int parsedId))
|
if(!string.IsNullOrEmpty(raidId) && int.TryParse(raidId, out int parsedId))
|
||||||
{
|
{
|
||||||
_template = RaidTemplateService.GetTemplate(parsedId);
|
_template = RaidTemplateService.GetTemplate(parsedId);
|
||||||
|
@ -372,4 +383,12 @@
|
||||||
await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, _remindersToDelete, _messagesToDelete, _user.Id);
|
await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, _remindersToDelete, _messagesToDelete, _user.Id);
|
||||||
NavigationManager.NavigateTo("raidtemplateoverview");
|
NavigationManager.NavigateTo("raidtemplateoverview");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task CopyTemplate()
|
||||||
|
{
|
||||||
|
RaidTemplate newTemplate = new RaidTemplate(_template);
|
||||||
|
await RaidTemplateService.AddOrEditTemplate(newTemplate, new List<RaidRole>(), new List<RaidReminder>(), new List<DiscordRaidMessage>(), _user.Id);
|
||||||
|
|
||||||
|
NavigationManager.NavigateTo($"/raidtemplateedit/{newTemplate.RaidTemplateId}/true", true);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue