/// <summary> /// Konstruktor mit standardisierten Parametern (final) /// </summary> /// <param name="_modeName">Vergleichsmodus für das Name-Attribut</param> /// <param name="_modeType">Vergleichsmodus für das Type-Attribut</param> /// <param name="_modeRarity">Vergleichsmodus für das Seltenheits-Attribut</param> /// <param name="_nameContains">Name-Attribut Einschränkungen</param> /// <param name="_typeContains">Type-Attribut Einschränkungen</param> /// <param name="_rarityName">RarityName-Attribut Einschränkungen</param> /// <param name="_allowedTypes">Einschränkung für erlaubte Type-Attribute</param> /// <param name="_allowedRarities">Einschränkung für erlaubte Seltenheiten</param> /// <param name="_allowedAtrributes">Einschränkung für erlaubte <see cref="Loot3Framework.Types.Attributes"/></param> /// <param name="_rarityLowerBound">Einschränkung für die untere Grenze des Rarity-Attributs</param> /// <param name="_rarityUpperBound">Einschränkung für für die obere Grenze des Rarity-Attributs</param> public ConfigurableFilter( StringComparing _modeName = StringComparing.NonCaseSensitiveInclude, StringComparing _modeType = StringComparing.NonCaseSensitiveInclude, StringComparing _modeRarity = StringComparing.NonCaseSensitiveInclude, string _nameContains = "", string _typeContains = "", string _rarityName = "", string[] _allowedTypes = null, string[] _allowedRarities = null, string[] _allowedAtrributes = null, int _rarityLowerBound = 0, int _rarityUpperBound = 1000) { modes = new StringComparing[] { _modeName, _modeType, _modeRarity }; nameContains = _nameContains; typeContains = _typeContains; rarityName = _rarityName; allowedTypes = _allowedTypes; allowedRarities = _allowedRarities; allowedAttributes = _allowedAtrributes; rarityLowerBound = _rarityLowerBound; rarityUpperBound = _rarityUpperBound; }
/// <summary> /// Vergleicht zwei <see cref="string"/>s abhängig vom weiteren Input /// </summary> /// <param name="a">Das erweiterte Objekt</param> /// <param name="b">Der zweite <see cref="string"/></param> /// <param name="mode">Die Vergleichsparameter</param> /// <returns>Ja wenn alle Anforderungen erfüllt sind</returns> public static bool CompareToString(this string a, string b, StringComparing mode) { a = a ?? ""; b = b ?? ""; switch (mode) { case StringComparing.CaseSensitiveEqual: return(a == b); case StringComparing.CaseSensitiveInclude: return(a.Contains(b)); case StringComparing.NonCaseSensitiveEqual: return(a.ToUpper() == b.ToUpper()); case StringComparing.NonCaseSensitiveInclude: return(a.ToUpper().Contains(b.ToUpper())); default: throw new Exception(); } }