39 lines
1.8 KiB
C#

using System.Collections.Generic;
using gehGassi.Domain.Placeholders;
using gehGassi.Domain.Users;
namespace gehGassi.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der Funktionen rund um die Variablen/Platzhalter bietet
/// </summary>
public interface IPlaceHolderService
{
/// <summary>
/// Gibt die Liste der verfügbaren Platzhalter-Kategorien zurück
/// </summary>
/// <param name="lang">Sprache ISO2</param>
/// <returns>Liste Kategorien</returns>
List<PlaceHolderCategory> GetCategories(string lang);
/// <summary>
/// Gibt die Liste der Platzhalter-Variablen für eine Kategorie zurück
/// </summary>
/// <param name="categoryId">Id der Kategorie</param>
/// <param name="lang">Sprache ISO2</param>
/// <returns>Liste Platzhalter</returns>
List<PlaceHolder> GetPlaceholders(int categoryId, string lang);
/// <summary>
/// Ersetzt in einem Text alle Platzhalter mit den entsprechenden Daten, sofern diese zur Verfügung gestellt wurden.
/// </summary>
/// <param name="content">Text in welchem die Platzhalter ausgefüllt werden sollen</param>
/// <param name="lang">Sprache ISO2</param>
/// <param name="timezoneId">Id der Timezone für Datums-Operationen</param>
/// <param name="useHtml">Soll bei manchen Ersatzoperationen HTML verwendet werden? Z.B. Adress-Block</param>
/// <param name="user">Optional: Benutzer</param>
/// <returns>Anzahl ersetzer Platzhalter. Der Text ist als ref Parameter bearbeitet</returns>
int FillIn(ref string content, string lang, string timezoneId, bool useHtml = false, ApplicationUser user = null);
}
}