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