Added reminders and discord messages to templates
This commit is contained in:
parent
5a5c3df1a9
commit
07a0e685f2
3 changed files with 45 additions and 2 deletions
|
@ -92,6 +92,7 @@ namespace Lieb.Data
|
||||||
context.RaidRoles.RemoveRange(raid.Roles);
|
context.RaidRoles.RemoveRange(raid.Roles);
|
||||||
context.RaidLogs.RemoveRange(raid.RaidLogs);
|
context.RaidLogs.RemoveRange(raid.RaidLogs);
|
||||||
context.RaidReminders.RemoveRange(raid.Reminders);
|
context.RaidReminders.RemoveRange(raid.Reminders);
|
||||||
|
context.DiscordRaidMessages.RemoveRange(raid.DiscordRaidMessages);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
context.Raids.Remove(raid);
|
context.Raids.Remove(raid);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace Lieb.Data
|
||||||
.FirstOrDefault(t => t.RaidTemplateId == raidTemplateId);
|
.FirstOrDefault(t => t.RaidTemplateId == raidTemplateId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task AddOrEditTemplate(RaidTemplate template, List<RaidRole> rolesToDelete, List<RaidReminder> remindersToDelete)
|
public async Task AddOrEditTemplate(RaidTemplate template, List<RaidRole> rolesToDelete, List<RaidReminder> remindersToDelete, List<DiscordRaidMessage> messagesToDelete)
|
||||||
{
|
{
|
||||||
if (template != null)
|
if (template != null)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +45,7 @@ namespace Lieb.Data
|
||||||
context.Update(template);
|
context.Update(template);
|
||||||
context.RaidRoles.RemoveRange(rolesToDelete);
|
context.RaidRoles.RemoveRange(rolesToDelete);
|
||||||
context.RaidReminders.RemoveRange(remindersToDelete);
|
context.RaidReminders.RemoveRange(remindersToDelete);
|
||||||
|
context.DiscordRaidMessages.RemoveRange(messagesToDelete);
|
||||||
}
|
}
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
@ -56,6 +57,7 @@ namespace Lieb.Data
|
||||||
RaidTemplate template = GetTemplate(raidTemplateId);
|
RaidTemplate template = GetTemplate(raidTemplateId);
|
||||||
context.RaidRoles.RemoveRange(template.Roles);
|
context.RaidRoles.RemoveRange(template.Roles);
|
||||||
context.RaidReminders.RemoveRange(template.Reminders);
|
context.RaidReminders.RemoveRange(template.Reminders);
|
||||||
|
context.DiscordRaidMessages.RemoveRange(template.DiscordRaidMessages);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
context.RaidTemplates.Remove(template);
|
context.RaidTemplates.Remove(template);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
|
@ -67,6 +69,7 @@ namespace Lieb.Data
|
||||||
RaidTemplate? template = await context.RaidTemplates
|
RaidTemplate? template = await context.RaidTemplates
|
||||||
.Include(r => r.Roles)
|
.Include(r => r.Roles)
|
||||||
.Include(r => r.Reminders)
|
.Include(r => r.Reminders)
|
||||||
|
.Include(r => r.DiscordRaidMessages)
|
||||||
.FirstOrDefaultAsync(t => t.RaidTemplateId == raidTempalteId);
|
.FirstOrDefaultAsync(t => t.RaidTemplateId == raidTempalteId);
|
||||||
if(template == null)
|
if(template == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -164,6 +164,10 @@
|
||||||
</p>
|
</p>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<DiscordMessageEdit _raid=@_raid _discordServers=@_discordServers _messagesToDelete=@_messagesToDelete ></DiscordMessageEdit>
|
||||||
|
<StaticReminderEdit _raidReminders=@_staticReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></StaticReminderEdit>
|
||||||
|
<DynamicReminderEdit _raidReminders=@_dynamicReminders _discordServers=@_discordServers _remindersToDelete=@_remindersToDelete ></DynamicReminderEdit>
|
||||||
|
|
||||||
<ValidationSummary />
|
<ValidationSummary />
|
||||||
<label class="validation-message" >@_errorMessage</label>
|
<label class="validation-message" >@_errorMessage</label>
|
||||||
<button type="submit">Submit</button>
|
<button type="submit">Submit</button>
|
||||||
|
@ -191,6 +195,13 @@
|
||||||
private string _userTimeZone = string.Empty;
|
private string _userTimeZone = string.Empty;
|
||||||
|
|
||||||
private List<RaidRole> _rolesToDelete = new List<RaidRole>();
|
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>();
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
@ -218,17 +229,33 @@
|
||||||
_raidDate = _startTime.Date;
|
_raidDate = _startTime.Date;
|
||||||
_freeForAllTime = _template.FreeForAllTime;
|
_freeForAllTime = _template.FreeForAllTime;
|
||||||
_freeForAllDate = _freeForAllTime.Date;
|
_freeForAllDate = _freeForAllTime.Date;
|
||||||
|
foreach(RaidReminder reminder in _template.Reminders)
|
||||||
|
{
|
||||||
|
if(reminder.TimeType == RaidReminder.ReminderTimeType.Static)
|
||||||
|
{
|
||||||
|
DateTimeOffset reminderTime = await TimeZoneService.GetLocalDateTime(reminder.ReminderTimeUTC);
|
||||||
|
DateTimeOffset reminderDate = (await TimeZoneService.GetLocalDateTime(reminder.ReminderTimeUTC)).Date;
|
||||||
|
_staticReminders.Add(new StaticRaidReminder(reminder, reminderDate, reminderTime));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_template = new RaidTemplate();
|
_dynamicReminders.Add(new DynamicRaidReminder(reminder, _template.StartTimeUTC));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_template = new RaidTemplate();
|
_template = new RaidTemplate();
|
||||||
|
_dynamicReminders.Add(DynamicRaidReminder.Create30MinReminder());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_template = new RaidTemplate();
|
||||||
|
_dynamicReminders.Add(DynamicRaidReminder.Create30MinReminder());
|
||||||
}
|
}
|
||||||
_userTimeZone = await TimeZoneService.GetUserTimeZone();
|
_userTimeZone = await TimeZoneService.GetUserTimeZone();
|
||||||
|
_discordServers = await DiscordService.GetServers();
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task AddRoleClicked()
|
async Task AddRoleClicked()
|
||||||
|
@ -293,7 +320,19 @@
|
||||||
_template.RaidOwnerId = _user.Id;
|
_template.RaidOwnerId = _user.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, new List<RaidReminder>());
|
_raid.Reminders.Clear();
|
||||||
|
foreach(DynamicRaidReminder reminder in _dynamicReminders)
|
||||||
|
{
|
||||||
|
reminder.ReminderTimeUTC = _raid.StartTimeUTC - new TimeSpan(reminder.DaysBeforeRaid, reminder.HoursBeforeRaid, reminder.MinutesBeforeRaid, 0);
|
||||||
|
_raid.Reminders.Add(reminder);
|
||||||
|
}
|
||||||
|
foreach(StaticRaidReminder reminder in _staticReminders)
|
||||||
|
{
|
||||||
|
reminder.ReminderTimeUTC = await TimeZoneService.GetUTCDateTime(reminder.ReminderDate.Date + reminder.ReminderTime.TimeOfDay);
|
||||||
|
_raid.Reminders.Add(reminder);
|
||||||
|
}
|
||||||
|
|
||||||
|
await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, _remindersToDelete, _messagesToDelete);
|
||||||
NavigationManager.NavigateTo("raidtemplateoverview");
|
NavigationManager.NavigateTo("raidtemplateoverview");
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue