@using Oqtane.Modules.Controls @using SZUAbsolventenverein.Module.AdminModules.Services @using SZUAbsolventenverein.Module.AdminModules.Models @using Microsoft.AspNetCore.Components.Forms; @namespace SZUAbsolventenverein.Module.AdminModules @inherits ModuleBase @inject IAdminModulesService AdminModulesService @inject NavigationManager NavigationManager @inject IStringLocalizer Localizer
@foreach (var role in roles) { }
@if(userCount != null) {
@userCount
}

@Localizer["Cancel"]

@code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; public override string Actions => "Send"; public override string Title => "Send Notifications"; public override List Resources => new List() { new Stylesheet("_content/SZUAbsolventenverein.Module.AdminModules/Module.css") }; private List roles = new List(); private int _selectedRoleId = -1; private int selectedRoleId { get => _selectedRoleId; set { _selectedRoleId = value; selectedRole = roles.FirstOrDefault(r => r.RoleId == selectedRoleId); RefetchUserCount(); } } private Role selectedRole; private int? userCount { get; set; } private ElementReference form; private bool validated = false; private int _id; private string _name; private string _richText; private string _createdby; private DateTime _createdon; private string _modifiedby; private DateTime _modifiedon; private async void RefetchUserCount() { EmailFields ef = new EmailFields(); ef.Role = selectedRole; ef.AdminModulesId = _id; ef.ModuleId = ModuleState.ModuleId; ef = await AdminModulesService.PostUsercountInRole(ef); userCount = ef.UserCount; StateHasChanged(); } protected override async Task OnInitializedAsync() { try { if (PageState.Action == "Send") { _id = Int32.Parse(PageState.QueryString["id"]); AdminModules AdminModules = await AdminModulesService.GetAdminModulesAsync(_id, ModuleState.ModuleId); if (AdminModules != null) { _name = AdminModules.Name; _richText = AdminModules.Content; _createdby = AdminModules.CreatedBy; _createdon = AdminModules.CreatedOn; _modifiedby = AdminModules.ModifiedBy; _modifiedon = AdminModules.ModifiedOn; } roles = await AdminModulesService.GetRoles(ModuleState.ModuleId); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading AdminModules {AdminModulesId} {Error}", _id, ex.Message); AddModuleMessage(Localizer["Message.LoadError"], MessageType.Error); } } private async Task Save() { try { validated = true; var interop = new Oqtane.UI.Interop(JSRuntime); if (await interop.FormValid(form)) { EmailFields ef = new EmailFields(); ef.ModuleId = ModuleState.ModuleId; ef.AdminModulesId = _id; ef.Role = selectedRole; ef = await AdminModulesService.SendMassNotification(ef); NavigationManager.NavigateTo(NavigateUrl()); } else { AddModuleMessage(Localizer["Message.SaveValidation"], MessageType.Warning); } } catch (Exception ex) { await logger.LogError(ex, "Error Saving AdminModules {Error}", ex.Message); AddModuleMessage(Localizer["Message.SaveError"], MessageType.Error); } } }