@using Interfaces @using Oqtane.Modules.Controls @using SZUAbsolventenverein.Module.BlackBoard.Services @using SZUAbsolventenverein.Module.BlackBoard.Models @namespace SZUAbsolventenverein.Module.BlackBoard @inherits ModuleBase @inject IBlackBoardService BlackBoardService @inject NavigationManager NavigationManager @inject IReportingHandler ReportingHandler @inject IStringLocalizer Localizer
@Localizer["Cancel"]

@if (PageState.Action == "Edit") { }
@code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; public override string Actions => "Add,Edit"; public override string Title => "Manage BlackBoard"; public override List Resources => new List() { new Stylesheet("_content/SZUAbsolventenverein.Module.BlackBoard/Module.css") }; private ElementReference form; private bool validated = false; private int _id; private string _name; private string _createdby; private DateTime _createdon; private string _modifiedby; private DateTime _modifiedon; protected override async Task OnInitializedAsync() { try { if (PageState.Action == "Edit") { _id = Int32.Parse(PageState.QueryString["id"]); BlackBoard BlackBoard = await BlackBoardService.GetBlackBoardAsync(_id, ModuleState.ModuleId); if (BlackBoard != null) { _name = BlackBoard.Name; _createdby = BlackBoard.CreatedBy; _createdon = BlackBoard.CreatedOn; _modifiedby = BlackBoard.ModifiedBy; _modifiedon = BlackBoard.ModifiedOn; } } } catch (Exception ex) { await logger.LogError(ex, "Error Loading BlackBoard {BlackBoardId} {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)) { if (PageState.Action == "Add") { BlackBoard BlackBoard = new BlackBoard(); BlackBoard.ModuleId = ModuleState.ModuleId; BlackBoard.Name = _name; BlackBoard = await BlackBoardService.AddBlackBoardAsync(BlackBoard); await logger.LogInformation("BlackBoard Added {BlackBoard}", BlackBoard); } else { BlackBoard BlackBoard = await BlackBoardService.GetBlackBoardAsync(_id, ModuleState.ModuleId); BlackBoard.Name = _name; await BlackBoardService.UpdateBlackBoardAsync(BlackBoard); await logger.LogInformation("BlackBoard Updated {BlackBoard}", BlackBoard); } NavigationManager.NavigateTo(NavigateUrl()); } else { AddModuleMessage(Localizer["Message.SaveValidation"], MessageType.Warning); } } catch (Exception ex) { await logger.LogError(ex, "Error Saving BlackBoard {Error}", ex.Message); AddModuleMessage(Localizer["Message.SaveError"], MessageType.Error); } } private async Task Report() { try { BlackBoard BlackBoard = await BlackBoardService.GetBlackBoardAsync(_id, ModuleState.ModuleId); BlackBoard.Name = _name; ReportingHandler.Report(BlackBoard, "Reported by user"); } catch (Exception ex) { await logger.LogError(ex, "Error Reporting BlackBoard {BlackBoardId} {Error}", _id, ex.Message); AddModuleMessage(Localizer["Message.ReportError"], MessageType.Error); } } }