diff --git a/Client/Components/ReportComponent.razor b/Client/Components/ReportComponent.razor new file mode 100644 index 0000000..830e84e --- /dev/null +++ b/Client/Components/ReportComponent.razor @@ -0,0 +1,139 @@ +@inherits ComponentBase +@using Interfaces +@implements Interfaces.IReportUI +@inject IReportingHandler ReportingHandler + + + +@if (_showReportModal) +{ + +} + + + +@code { + public Type ReportType => typeof(ReportComponent); + + [Parameter] + public IReportable ReportableEntity { get; set; } + + private bool _showReportModal = false; + private string _reportReason = ""; + + private class ReportEntityTest : IReportable + { + public int EntityID { get; set; } + public string ModuleName { get; set; } + public int ModuleID { get; set; } + } + + protected override Task OnInitializedAsync() + { + ReportableEntity = new ReportEntityTest { EntityID = 1, ModuleID = 2, ModuleName = "TestModule" }; + return base.OnInitializedAsync(); + } + + private void ShowReportModal() + { + _reportReason = ""; + _showReportModal = true; + } + + private void CloseReportModal() + { + _showReportModal = false; + } + + private void ReportEntry() + { + ReportingHandler.Report(ReportableEntity, _reportReason); + Console.WriteLine($"Eintrag gemeldet mit Grund: {_reportReason}"); + CloseReportModal(); + } + + public override Task SetParametersAsync(ParameterView parameters) + { + Console.WriteLine("ParameterView received in ReportComponent:"); + foreach (var parameter in parameters) + { + Console.WriteLine(parameter.Name + "name - value" + parameter.Value); + } + return base.SetParametersAsync(parameters); + } + +} \ No newline at end of file diff --git a/Client/Startup/ClientStartup.cs b/Client/Startup/ClientStartup.cs index 0b0e928..fcc6d06 100644 --- a/Client/Startup/ClientStartup.cs +++ b/Client/Startup/ClientStartup.cs @@ -1,7 +1,9 @@ +using System; using Microsoft.Extensions.DependencyInjection; using System.Linq; using Interfaces; using Oqtane.Services; +using SZUAbsolventenverein.Module.AdminModules.Client.Components; using SZUAbsolventenverein.Module.AdminModules.Services; using SZUAbsolventenverein.Module.ReportSystem.Services; @@ -20,10 +22,16 @@ namespace SZUAbsolventenverein.Module.AdminModules.Startup { services.AddScoped(); } + if (!services.Any(s => s.ServiceType == typeof(IReportSystemReportingService))) { services.AddScoped(); } + + if (!services.Any(s => s.ServiceType == typeof(IReportUI))) + { + services.AddScoped(); + } } } }