Пример #1
0
        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));
        }
Пример #2
0
        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;
                })
            });
        }