Hilfe-Center

FilterOption

Die FilterOption-Klassen sind Hilfsobjekte, die eine Filterung nach bestimmten Mustern im ArticlePager erleichtern sollen. Sie können dem Pager übergeben werden, sodass dieser die Artikel nach den Filteroptionen prüfen und ausliefern kann. Sofern es einmal nötig sein sollte, können diese Klassen natürlich auch außerhalb des Pagers verwendet werden.

Base

Base ist der Basistyp der Filteroptionen, der nur dazu dient einen einheitlichen Standard aller Filteroptionen herzustellen. Diese Klasse ist nicht instanziierbar. Von ihr erben alle anderen Optionen, sodass sie in einer Liste gemeinsam verwendet werden können.

Die Konstruktoren aller Filteroptionen besitzen als Parameter einen String "AttributeName", dieser stellt den Attributnamen dar, nach dessen Wert gefiltert werden soll. Die weiteren Parameter, die je nach Klasse abweichen, regeln, wie dieser Wert beschaffen sein soll um nicht durch den Filter zu fallen. Gibt es in einem Shape kein Attribut dieses Namens, oder stimmt der Typ nicht mit dem gegebenen Filter überein, wird es nicht geliefert.

Der Pager übergibt intern den EditMode, es ist also nicht nötig, jeder Option mitzugeben, ob sie nun den IsEdit oder den IsPublished-Wert des Attributs verwenden soll.

Im Pager wird bei der internen Reorganisation der Artikel jeder Filter auf jeden Artikel angewandt, d.h. alle Filter müssen übereinstimmen, sodass der Artikel schließlich geliefert wird.

bool IsMatch(Core.API.iShape ShapeToCheck, bool EditMode)

Prüft, ob das gegebene Shape mit den Filtern übereinstimmt (true) oder nicht (false). Dies kann auch für Shapes verwendet werden, die keine Artikel sind (der Pager jedoch wendet dies nur auf Artikel an, da Nicht-Artikel-Shapes vorher aussortiert werden)
Diese Funktion besitzt mit identischer Signatur jede abgeleitete Klasse.

  • ShapeToCheck: Das zu prüfende Shape
  • EditMode: Angabe, ob der Wert des Attributs im Edit- oder Published-Stand verwendet werden soll

Abgeleitete Klassen, bzw. deren Konstruktoren:

Boolean(string AttributeName, bool Value)

Erzeugt eine Filteroption für Boolean-Werte.

  • AttributeName: Name des Attributs nach dem gefiltert werden soll. 
  • Value: Den Wert den das Attribut mit dem Namen AttributeName haben soll (true oder false).

Decimal(
      string AttributeName,
      decimal Min = decimal.MinValue,
      decimal Max = decimal.MaxValue
)

Erzeugt eine Filteroption für Decimal-Werte.

  • AttributeName: Name des Attributs nach dem gefiltert werden soll. 
  • Optionale Parameter:
    • Min: Der Mindestwert des Decimal-Attributs
    • Max: Der Maximalwert des Decimal-Attributs

Hinweis: Es wird kein Fehler geworfen, wenn Min > Max ist, es wird dann nur nie einen Wert geben, der zum Filter passt. Übergibt man keinen der beiden Werte, trifft der Filter auf alle Decimal-Werte zu.
Hinweis: Auf eine Option "ist gleich" wurde bewusst verzichtet, da man dafür ganz einfach Min = Max setzen kann. "Ist ungleich" hätte bisher noch keinen konkreten Anwendungsfall.

Integer(
      string AttributeName,
      int Min = int.MinValue,
      int Max = int.MaxValue
)

Erzeugt eine Filteroption für Integer-Werte.

  • AttributeName: Name des Attributs nach dem gefiltert werden soll. 
  • Optionale Parameter:
    • Min: Der Mindestwert des Integer-Attributs
    • Max: Der Maximalwert des Integer-Attributs

Hinweis: Es wird kein Fehler geworfen, wenn Min > Max ist, es wird dann nur nie einen Wert geben, der zum Filter passt. Übergibt man keinen der beiden Werte, trifft der Filter auf alle Integer-Werte zu.
Hinweis: Auf eine Option "ist gleich" wurde bewusst verzichtet, da man dafür ganz einfach Min = Max setzen kann. "Ist ungleich" hätte bisher noch keinen konkreten Anwendungsfall.

Page(
      string AttributeName,
      IEnumerable<Core.API.iPage> FilterPages
)

Erzeugt eine Filteroption für Seiten. Es wird dabei geschaut, ob ein Shape/Artikel in einer der übergebenen Seiten liegt.

  • AttributeName: Name des Attributs nach dem gefiltert werden soll. 
  • FilterPages: Alle Seiten, in denen ein Shape liegen darf, um vom Filter durchgelassen zu werden. Wird keine Seite bzw. keine gültige Seite angegeben, werden alle Shapes durch den FIlter gelassen.

Text(
      string AttributeName,
      string Contains = "",
      string IsEqual = "",
      string StartsWith = "",
      string EndsWith = ""
)

Erzeugt eine Filteroption für Texte. 
Wichtig: Alle Filtermöglichkeiten sind nicht case-sensitiv.

  • AttributeName: Name des Attributs nach dem gefiltert werden soll. 
  • Optionale Parameter (leer bzw. Nothing bedeutet jeweils nicht gesetzt):
    • Contains: Definiert einen String, der im Attributwert enthalten sein soll
    • IsEqual: Definiert denjenigen String, mit dem der Attributwert identisch sein soll (Achtung: Führt keinen impliziten Trim aus!)
    • StartsWith: Definiert einen String, mit dem der Attributwert beginnen soll
    • EndsWith: Definiert einen String, mit dem der Attributwert enden soll

Hinweis: Angewandt werden immer alle Optionen gleichzeitig. 
Eine Sonderrolle hat in gewisser Weise "IsEqual". Ist dieser gesetzt, sind alle anderen Werte außer Kraft, da diese dann sowieso keinen Sinn mehr ergeben. D.h. IsEqual="Test" und StartsWith="XY" gleichzeitig würde einen Wert, der gleich "Test" ist, finden.

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich.
Es ist ein technisches Problem aufgetreten. Bitte wenden Sie sich telefonisch oder per E-Mail an uns.