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) : String

    Die 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) : IList

    Konvertiert 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 | null

    Konvertiert 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) : String

    Formatiert 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 = ) : String

    Formatiert 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) : String

    Formatiert 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) : String

    Gibt 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) : Boolean

    Liefert 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) : String

    Konvertiert eine Zeichenfolge in eine HTML basierte Zeichenfolge, Linefeed wird zu BR.

    • content: Die konvertierte Zeichenfolge.
  • HtmlAttributeEncode(content: String) : String

    Konvertiert eine Zeichenfolge in eine HTML basierte Zeichenfolge.

    • content: Die konvertierte Zeichenfolge.
  • QuoteString(content: String, htmlEncode?: Boolean = True) : String

    Fügt Quote um einen String, per Default mit HTMLEncode-Ausgabe

    • content: Die konvertierte Zeichenfolge.
    • htmlEncode:
  • DateTimeNow(format?: String = null) : String

    Gibt 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) : Object

    Fü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`1

    Sortiert 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) : Boolean

    Prü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) : Boolean

    Prüft ob ein Object null ist

    • o:
  • NotIsNull(o: Object) : Boolean

    Prü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) : Boolean

    Prüft, ob ein Ausdruck true ist. Zahl: != 0 String: nicht leer Bool: - null: false

    • value: Der zu prüfende Wert
  • IsFalse(value: Object) : Boolean

    Das Gegenstück zu M:IduIT.PiB.Presentation.TemplateEngine.ScribanScriptObjectHelpers.IsTrue(System.Object)

    • value:
  • IsEqual(a: Object, b: Object) : Boolean

    Prüft zwei Objekte auf Gleichheit

    • a:
    • b:
  • NotIsEqual(a: Object, b: Object) : Boolean

    Prüft zwei Objekte auf Ungleichheit

    • a:
    • b:
  • Filter(context: TemplateContext, span: SourceSpan, lst: IEnumerable`1, member: String, predicate: Object, fnArgs: Object[]) : IEnumerable`1

    Filter 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) : String

    Konvertiert 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) : String

    Ermittelt 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) : String

    Konvertiert 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) : String

    Entfernt 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) : String

    Erlaubt/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) : Void

    Löst eine CustomerException aus, wenn die condition false ist, bricht in diesem Fall die Abarbeitung ab.

    • condition:
    • message:
  • Throw(message: String) : Void

    Löst eine CustomerException aus und bricht die Abarbeitung ab.

    • message:
  • NumberToWords(number: Int32) : String

    Wandelt 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: ""