From 908fc0df1b39831b8500f70f2e892f38e5835e9c Mon Sep 17 00:00:00 2001 From: KoCoder Date: Fri, 13 Feb 2026 19:04:37 +0100 Subject: [PATCH] =?UTF-8?q?DOKU:=20Kommentare=20f=C3=BCr=20IReportable.cs,?= =?UTF-8?q?=20IReportingHandler.cs=20und=20IReportUI.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Interfaces/IReportUI.cs | 13 +++++++++++++ Interfaces/IReportable.cs | 19 +++++++++++++++++++ Interfaces/IReportingHandler.cs | 13 +++++++++++++ 3 files changed, 45 insertions(+) diff --git a/Interfaces/IReportUI.cs b/Interfaces/IReportUI.cs index a5c1986..cfa3f12 100644 --- a/Interfaces/IReportUI.cs +++ b/Interfaces/IReportUI.cs @@ -1,7 +1,20 @@ namespace Interfaces; +/// +/// Interface for the UI component that allows users to report entities. +/// This interface defines the properties that a reporting UI should have. +/// public interface IReportUI { + /// + /// The type of the UI Component that should be used to display the reporting interface. + /// This should be passed to DynamicComponent to render the UI Component. + /// Component that implement this interface should return typeof(this) in this property. + /// Type ReportType { get; } + + /// + /// The reportable Entity that is being reported. + /// IReportable ReportableEntity { get; set; } } \ No newline at end of file diff --git a/Interfaces/IReportable.cs b/Interfaces/IReportable.cs index 870bcd2..b5bc9e2 100644 --- a/Interfaces/IReportable.cs +++ b/Interfaces/IReportable.cs @@ -1,8 +1,27 @@ namespace Interfaces; +/// +/// Interface for entities that can be reported by users. This includes things like posts, comments, and user profiles. +/// The IReportUI interface will use this interface to determine what information to display when a user reports an +/// entity, and the IReportingHandler interface will use this interface to determine how to handle the report when it is +/// submitted. +/// public interface IReportable { + /// + /// Module Name is no longer required. Use ModuleID and EntityID instead to uniquely identify the type of entity being reported. + /// + [Obsolete] public string ModuleName { get; } + + /// + /// The ID of the Module from an Entity that is beeing reported. + /// This is used to determine the type of entity being reported. + /// public int ModuleID { get; } + + /// + /// The ID of an Entity that is beeing reported. This is used to determine the exact entity being reported. + /// public int EntityID { get; } } \ No newline at end of file diff --git a/Interfaces/IReportingHandler.cs b/Interfaces/IReportingHandler.cs index 5676d85..22b4b5e 100644 --- a/Interfaces/IReportingHandler.cs +++ b/Interfaces/IReportingHandler.cs @@ -1,6 +1,19 @@ namespace Interfaces; +/// +/// Handler for processing user reports. This interface defines a method for handling reports submitted by users, +/// which includes the reportable entity and any additional notes provided by the user. Implementations of this +/// interface will determine how to process the report, such as logging it, notifying moderators, +/// or taking action against the reported entity. +/// public interface IReportingHandler { + /// + /// Report an IReportable entity with a note. Implementations of this method should handle the report appropriately, + /// such as logging it, saving it, notifying moderators and taking action against the owner of the reported entity + /// if necessary. + /// + /// The Entity - as in the Message, Note, Posting, ... - that should be reported + /// A note from the reporting user which is only visible to the admins. public void Report(IReportable reportable, string note); } \ No newline at end of file