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