public async Task <IActionResult> RemembotSettings(ulong guildId, [FromServices] IDiscordGuildService guildService) { var settings = await _reminderSettingsService.GetSettingsByGuild(guildId); var channels = await guildService.GetChannels(guildId); var textChannels = channels.Where(x => x.Type == 0).ToList(); if (settings is null) { settings = new RemembotSettings { Enabled = false, GuildId = guildId }; await _reminderSettingsService.SaveSettings(settings); } var reminders = await _recurringReminderService.Get(x => x.GuildId == guildId); settings.RecurringReminders = reminders; var viewModel = ReminderSettingsViewModel.FromData(settings, channels); return(View(viewModel)); }
public static ReminderSettingsViewModel FromData(RemembotSettings settings, IEnumerable <Channel> channels) { if (settings is null) { return(new ReminderSettingsViewModel()); } return(new ReminderSettingsViewModel { GuildId = settings.GuildId, Enabled = settings.Enabled, RecurringReminders = settings.RecurringReminders?.Select(x => { var(isFaulted, status) = GetEnabledStatus(x); var vm = new ReminderListItemViewModel { Id = x.Id, Status = status, IsFaulted = isFaulted, Message = x.Message, ChannelName = channels.FirstOrDefault(y => y.Id == x.ChannelId)?.Name ?? "NA" }; return vm; }) }); }