Global
Hier sind Methoden zur Konvertierung von Typen in diverse Formate gekapselt. Die Klasse ist kein "ux", aber immer mit an Bord, daher in diesem Ordner mit abgelegt
Keine Überladungen von Funktionen durchführen. Damit kommt Scriban durcheinander, vor allem wenn Standard-Werte vorhanden sind.
FormatByteSize(size: Int64) : StringDie Methode formatiert eine byte-Größenangabe in eine Zeichenkette mit passender Einheit.
Ergebnis: Gibt beispielsweise 1,00 MB, oder 235,00 KB zurück.
- size: Die Bytegröße (Ganzahl).
ToIList(enumerable: IEnumerable) : IListKonvertiert eine IEnumerable - Auflistung in eine Liste, wenn es bereits ein IList ist, ist die Methode eine NoOp.
Dies dient vor allem der Konvertierung von IEnumerable in Listen, um doppeltes Abrufen zu vermeiden, und damit Zugriff auf Count und Indexer verwenden zu können.
Ergebnis: eine IList oder eine List
- enumerable:
ToLocalDateTime(dt: DateTime | null) : DateTime | nullKonvertiert ein DateTime Objekt in eine lokale Zeitangabe.
Entspricht die Eigenschaft DateTime.Kind dem Wert DateTime.Kind.Unspecified, wird angenommen dass es sich dabei schon um eine lokale Zeitangabe handelt und keine Konvertierung durchgeführt (was bei der .Net Methode DateTime.ToLocalTime der Fall wäre!).
Ein Null-Objekt wird ebenso wieder zurückgegeben.
{{ BO.CategoryClassData.DATUM | ToLocalDateTime | date.to_string '%d.%m.%Y' }}- dt: (nullable) der zu formatierende DateTime Wert
ToDateTimeString(dt: DateTime | null) : StringFormatiert ein Datum mit Uhrzeit in der Form "dd.MM.yyyy HH:mm:ss"
Wenn der Wert null oder DateTime.Min/Max ist, wird eine leere Zeichenfolge zurückgegeben.
- dt: (nullable)
ToDateTimeNoSecString(dt: DateTime | null, suffix?: String = ) : StringFormatiert ein Datum mit Uhrzeit in der Form "dd.MM.yyyy HH:mm"
Wenn der Wert null oder DateTime.Min/Max ist, wird eine leere Zeichenfolge zurückgegeben (ohne suffix!).
- dt: (nullable)
- suffix:
ToDateString(dt: DateTime | null) : StringFormatiert ein Datum in der Form "dd.MM.yyyy"
Wenn der Wert null oder DateTime.Min/Max ist, wird eine leere Zeichenfolge zurückgegeben.
- dt: (nullable)
GetEnumDescription(value: Enum, separator?: String = , , lastSeparator?: String = null, ignoreZeroValuesIfFlags?: Boolean = True, displayHint?: DisplayBehavior = Default) : StringGibt den Namen oder, wenn der Enum mit System.ComponentModel.DescriptionAttribute versehen, ist diesen zurück.
GetEnumDescription BO.EnumWert GetEnumDescription BO.EnumWert lastSeparator:" und "- value: Der Wert des Enums, kann auch ein zusammengesetzter (Flags) Wert sein
- separator: Trennzeichen der Einzelwert (" ,")
- lastSeparator: Trennzeichen des letzten Wertepaares der Einzelwert, wenn nicht angegeben, dann identisch mit separator
- ignoreZeroValuesIfFlags: Bei Flags-Werten den Wert 0 ignorieren, der Standard ist true
- displayHint: (enum: Default, Short, PreferShort, ShortAndDescription, DescriptionAndShort)
EnumHasFlag(value: Enum, flagValuesToCheckFor: Object, ignoreCase?: Boolean = True) : BooleanLiefert true zurück, wenn der Flag-Enum-Wert den angegebenen Wert enthält. Intern wird Enum.Parse und Enum.HasFlag verwendet.
BO.EnumWert | EnumHasFlag('GesuchterEnumWert') BO.EnumWert | EnumHasFlag('gesuchterenumwert', true)- value: Der Enum-Wert.
- flagValuesToCheckFor: Das Flag auf welches geprüft werden soll. Es kann die Textdarstellung oder Ganzzahlvariante verwendet werden. Im Fall der Textdarstellung sind Mehrfachangaben durch Kommatrennung möglich.
- ignoreCase: Die Werte, wenn als Zeichenkette übergeben, werden case-insensitive verglichen. Standard = true
HtmlEncode(content: String) : StringKonvertiert eine Zeichenfolge in eine HTML basierte Zeichenfolge, Linefeed wird zu BR.
- content: Die konvertierte Zeichenfolge.
HtmlAttributeEncode(content: String) : StringKonvertiert eine Zeichenfolge in eine HTML basierte Zeichenfolge.
- content: Die konvertierte Zeichenfolge.
QuoteString(content: String, htmlEncode?: Boolean = True) : StringFügt Quote um einen String, per Default mit HTMLEncode-Ausgabe
- content: Die konvertierte Zeichenfolge.
- htmlEncode:
DateTimeNow(format?: String = null) : StringGibt das aktuelle Datum/Zeit im übergebenen Format oder ansonsten im Format 'ToShortDateString ToShortTimeString' aus
Ergebnis: formatiertes Datum/Zeit
- format: Format-String nach den DateTime Konventionen
CallCustomFunction(method: DelegateCustomFunction, args: ScriptArray) : ObjectFührt einen Scriban-Funktionszeiger mit einem Array von Argumenten aus. Bsp.:
args:{ "$geomFilter":{ fn:@sqlBld.INTERSECTS, args:["GEOM", BO.Args.geom] } } .... for $e in args $t = CallCustomFunction(@$e.Value.fn,$e.Value.args) sql = sql | string.replace("{"+$e.Key+"}",$t) end- method:
- args:
NestedSortByMemberName(list: Object, firstOrderSortMember: String, secondOrderSortMember: String, nullOrEmptyEntriesOfFirstOrderAtLast: Boolean) : IEnumerable`1Sortiert eine Liste von Objekten zweistufig nach String-Membern. NullOrEmpty-Member werden parametrierbar an den Anfang oder an das Ende der Rückgabe gesetzt.
Ergebnis: Die sortierte Liste.
- list: Die zu sortierende Liste.
- firstOrderSortMember: Der erste Member nach welchem sortiert wird.
- secondOrderSortMember: Der zweite Member nach welchem sortiert wird.
- nullOrEmptyEntriesOfFirstOrderAtLast: Gibt an, ob Objekte mit NullOrEmpty-FirstOrderMembers an das Ende oder an den Anfang der Liste gesetzt werden sollen.
IsNullOrEmptyString(stringToCheck: String) : BooleanPrüft ob der String null oder string.Empty ist.
Ergebnis: Ein Wert der angibt ob der Eingabestring null oder string.Empty ist.
- stringToCheck: Der zu prüfende String.
IsNull(o: Object) : BooleanPrüft ob ein Object null ist
- o:
NotIsNull(o: Object) : BooleanPrüft ob ein Object nicht null ist
- o:
NotIsNullOrWhiteSpace(value: Object) : Boolean!IsNullOrWhiteSpace für einen String
- value: Der zu prüfende String.
IsTrue(value: Object) : BooleanPrüft, ob ein Ausdruck true ist. Zahl: != 0 String: nicht leer Bool: - null: false
- value: Der zu prüfende Wert
IsFalse(value: Object) : BooleanDas Gegenstück zu M:IduIT.PiB.Presentation.TemplateEngine.ScribanScriptObjectHelpers.IsTrue(System.Object)
- value:
IsEqual(a: Object, b: Object) : BooleanPrüft zwei Objekte auf Gleichheit
- a:
- b:
NotIsEqual(a: Object, b: Object) : BooleanPrüft zwei Objekte auf Ungleichheit
- a:
- b:
Filter(context: TemplateContext, span: SourceSpan, lst: IEnumerable`1, member: String, predicate: Object, fnArgs: Object[]) : IEnumerable`1Filter für eine Auflistung, bspw. ein Array
- context:
- span:
- lst: Die Auflistung, wenn null, wird null zurückgegeben.
- member: Namen des Member eines Elementes der Auflistung, wird als erstes Argument an predicate übergeben.
- predicate: Zeiger auf eine Funktion die einen bool als Rückgabe hat, bspw. @IsTrue, @IsEqual, ....
- fnArgs: Weitere Argumente für die Methode predicate
SafeMarkdownToHtml(markdown: String, useSoftlineBreakAsHardlineBreak?: Boolean = True, createOuterDiv?: Boolean = False) : StringKonvertiert vertrauenswürdigen Markdown-Text in HTML, d. h. HTML innerhalb des Markdowns ist zulässig.
Evt. sollte noch !:SecureSanitizeHtml auf das Ergebnis angewandt werden.
Nico wieso soll vertrauenswürdiges Markup noch sanitized werden ????
- markdown:
- useSoftlineBreakAsHardlineBreak:
- createOuterDiv:
AlignAllLinesAtFirstWhiteSpaceCount(markdown: String, convertTabsToSpaces?: Boolean = False, alignAtFirstBlock?: Boolean = False) : StringErmittelt die Anzahl Whitespace der 1. Zeile aus markdownString. Entfernt diese aus der 1. Zeile und die gleiche Anzahl der Whitespaces aus alle Folgezeilen. Leerzeilen am Anfang und Ende werden entfernt.
Das Mischen von Tabs und Spaces am Zeilenanfang kann hier Probleme verursachen
- markdown:
- convertTabsToSpaces:
- alignAtFirstBlock:
StrictMarkdownToHtml(markdown: String, useSoftlineBreakAsHardlineBreak?: Boolean = True, createOuterDiv?: Boolean = False) : StringKonvertiert potentiell nicht vertrauenswürdigen Markdown-Text in HTML, d. h. HTML innerhalb des Markdowns ist nicht zulässig und wird entfernt.
Evt. sollte noch !:SecureSanitizeHtml auf das Ergebnis angewandt werden.
- markdown:
- useSoftlineBreakAsHardlineBreak:
- createOuterDiv:
SanitizeHtml(html: String, appendChangeInfo?: Boolean = True, rewriteAllLinkTargetsToBlank?: Boolean = True, removeAllAutoDownloadUrls?: Boolean = True) : StringEntfernt sicherheitskritische Elemente aus HTML.
- html: das HTML, ist das HTML null, dann wird auch null zurückgegeben.
- appendChangeInfo: (false) wenn true, dann einen DIV mit einer Auflistung der entfernten Elemente an das Ergebnis anfügen, falls Elemente aus dem HTML entfernt wurden.
- rewriteAllLinkTargetsToBlank: (true)
- removeAllAutoDownloadUrls: (true)
SanitizeHtml2(html: String, additionalElementsToAllow: SanitizerElements, additionalElementsToDeny: SanitizerElements, appendChangeInfo?: Boolean = True, rewriteAllLinkTargetsToBlank?: Boolean = True) : StringErlaubt/verbietet zusätzlich die über Parameter angegebenen Element (ausgehend von der Voreinstellung des Sanitizers). Hinweis: Eigentlich sind Ausnahmen nicht optimal, besser ist, die Quellen genauer zu differenzieren, was aus sicherer Quelle kommt und was nicht und dann nur die potentiell kritischen Quellen zu sanitizen.
- html: das HTML, ist das HTML null, dann wird auch null zurückgegeben.
- additionalElementsToAllow: optional Sammlung aller zusätzlich erlaubten Html-Elemente
- additionalElementsToDeny: optional Sammlung aller zusätzlich verbotenen Html-Elemente
- appendChangeInfo: (false) wenn true, dann einen DIV mit einer Auflistung der entfernten Elemente an das Ergebnis anfügen, falls Elemente aus dem HTML entfernt wurden.
- rewriteAllLinkTargetsToBlank: (true)
Assert(condition: Boolean, message: String) : VoidLöst eine CustomerException aus, wenn die condition false ist, bricht in diesem Fall die Abarbeitung ab.
- condition:
- message:
Throw(message: String) : VoidLöst eine CustomerException aus und bricht die Abarbeitung ab.
- message:
NumberToWords(number: Int32) : StringWandelt eine Nummer in ausgeschriebenen Text um (z.B. bei Währungsbetrag manchmal nötig).
- number: die umzuwandelnde Ganzzahl
Zuletzt geändert: 11.08.2025 07:54:12 (erstmals erstellt 24.08.2025) // Alias: ""