using System; using System.Collections.Generic; using System.Threading.Tasks; using SZUAbsolventenverein.Module.EventRegistration.Models; namespace SZUAbsolventenverein.Module.EventRegistration.Services { /// /// Methods for managing events and their responses /// public interface IEventRegistrationService { /// /// Alle Events eines Moduls abrufen /// /// das aufrufende Modul /// Liste aller Veranstaltungen Task> GetEventsAsync(int ModuleId); /// /// Ein bestimmtes Event abrufen /// /// das aufzurufende Event /// das aufrufende Modul /// Das Event selbst Task GetEventAsync(int EventId, int ModuleId); /// /// Ein neues Event anlegen /// /// das anzulegende Event /// das angelegte Event Task AddEventAsync(Event NewEvent); /// /// Ändern eines bestehenden Events /// /// Das Eventobjekt mit aktualisierte Event /// das gespeicherte Event Task UpdateEventAsync(Event UpdatedEvent); /// /// Löschen eines Events /// /// das zu löschende Event /// das aufrufende Modul /// Task DeleteEventAsync(int EventId, int ModuleId); /// /// Eine neue Antwort zu einem Event hinzufügen /// /// die Antwort /// die gespeicherte Antwort Task AddResponseAsync(Response Response); /// /// Eine bestehende Antwort zu einem Event aktualisieren /// /// die neue Antwort /// die gespeicherte neue Antwort Task UpdateResponseAsync(Response Response); /// /// Details zu einem Event abrufen (Event + Antwort vom auktuellen Benutzer) /// /// das aufzurufende Event /// das aufrufende Modul /// Tuple aus Event und Antwort Task<(Event, Response)> GetEventDetails(int EventId, int ModuleId); /// /// Alle Antworten zu einem Event abrufen /// /// das Event, dessen Antworten geladen werden sollen /// das aufrufende Modul /// Liste aller Antworten auf das Event Task> GetEventResponses(int EventId, int ModuleId); /// /// 10 Antworten eines Events abrufen, welche gewichtet zurückgeliefert werden /// /// das aufzurufende Event /// das aufrufende Modul /// Liste mit 10 Task> GetRecommendedEventResponses(int EventId, int MouleId); } }