public async Task <IActionResult> Punishments(ulong guildId, [FromServices] IDiscordGuildService guildService) { var punishments = await _entityServicePunishments.Get(x => x.GuildId == guildId); var punishmentModels = new List <PunishmentModel>(); var roles = await guildService.GetRoles(guildId); foreach (var p in punishments) { var role = roles.FirstOrDefault(r => r.Id == p.RoleId); punishmentModels.Add(new PunishmentModel { PunishDuration = p.PunishDuration, PunishType = p.PunishType, RoleId = p.RoleId, WarningThreshold = p.WarningThreshold, WarningType = p.WarningType, Role = new SelectList(roles, "Id", "Name", role), DeletePunishment = false, PunishmentId = p.Id }); } var vm = new PunishmentsViewModel { Punishments = punishmentModels }; return(View(vm)); }
public async Task <IActionResult> Punishments(ulong guildId, PunishmentsViewModel vm) { var punishments = vm.Punishments ?? new List <PunishmentModel>(); var punishmentsToRemove = new List <Punishment>(); foreach (var model in punishments.Where(x => x.DeletePunishment)) { if (model.PunishmentId.HasValue) { punishmentsToRemove.Add(ConvertModelPunishment(guildId, model)); } } await _entityServicePunishments.RemoveBulk(punishmentsToRemove); return(RedirectToAction("punishments")); }