public async Task <IActionResult> EditRecurringReminder(ulong guildId, EditRecurringReminderMessageViewModel vm) { if (!ModelState.IsValid) { return(View(vm)); } if (vm.Id == default(long)) { var newReminder = new RecurringReminderMessage { ChannelId = vm.ChannelId, Enabled = vm.Enabled, Message = vm.Message, CronExpression = vm.CronExpression, GuildId = guildId }; await _reminderService.Create(newReminder); return(RedirectToAction("RemembotSettings", "Settings")); } var reminder = await _reminderService.Find(vm.Id); reminder.ChannelId = vm.ChannelId; reminder.Enabled = vm.Enabled; reminder.Message = vm.Message; reminder.CronExpression = vm.CronExpression; await _reminderService.Update(reminder); return(RedirectToAction("RemembotSettings", "Settings")); }
public async Task <IActionResult> EditRecurringReminder(ulong guildId, [FromQuery] long rid) { var channels = await _guildService.GetChannels(guildId); var textChannels = channels.Where(x => x.Type == 0); if (rid == default(long)) { var newVm = new EditRecurringReminderMessageViewModel { Channels = new SelectList(textChannels, "Id", "Name"), Enabled = true, GuildId = guildId, CronExpression = Cron.Minutely() }; return(View(newVm)); } var reminder = await _reminderService.Find(rid); if (reminder is null) { return(RedirectToAction("RemembotSettings", "Settings")); } var selectedChannel = channels.Find(x => x.Id == reminder.ChannelId); var editVm = new EditRecurringReminderMessageViewModel { GuildId = guildId, Channels = new SelectList(textChannels, "Id", "Name", selectedChannel), CronExpression = reminder.CronExpression, Enabled = reminder.Enabled, Message = reminder.Message, FaultMessage = reminder.GetFaultLongMessage(), ChannelId = reminder.ChannelId, ChannelName = selectedChannel.Name, FaultType = (int)reminder.Fault, Id = reminder.Id }; return(View(editVm)); }