From 90ed29e5ebf5645773dd5cf3b3b5deae0b546e4f Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Thu, 18 Jul 2019 23:39:55 +0200 Subject: [PATCH] ContainsOrNot --- .../ViewModels/Library/FilterViewModel.cs | 25 ++++++++++++------ Data/HD/hd_spells.md | 10 +++---- Data/library.db | Bin 23252992 -> 23252992 bytes Data/spells_hd.md | 2 +- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/Library/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/Library/FilterViewModel.cs index 89cc3866..f1bb7504 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Library/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Library/FilterViewModel.cs @@ -34,6 +34,15 @@ namespace AideDeJeu.ViewModels.Library Helpers.RemoveDiacritics(item.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()); } + public bool MatchContainsOrNot(string itemValue, string filterValue) + { + if (!string.IsNullOrEmpty(filterValue) && string.IsNullOrWhiteSpace(filterValue)) + { + return string.IsNullOrEmpty(itemValue); + } + return string.IsNullOrEmpty(filterValue) || (itemValue != null && itemValue.ToLower().Contains(filterValue.ToLower())); + } + public bool MatchContains(string itemValue, string filterValue) { return string.IsNullOrEmpty(filterValue) || (itemValue != null && itemValue.ToLower().Contains(filterValue.ToLower())); @@ -265,9 +274,9 @@ namespace AideDeJeu.ViewModels.Library var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; var castingTime = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.CastingTime).SelectedKey ?? ""; var range = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Range).SelectedKey ?? ""; - var verbalComponents = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.VerbalComponent).SelectedKey ?? ""; - var somaticComponents = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.SomaticComponent).SelectedKey ?? ""; - var materialComponents = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaterialComponent).SelectedKey ?? ""; + var verbalComponent = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.VerbalComponent).SelectedKey ?? ""; + var somaticComponent = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.SomaticComponent).SelectedKey ?? ""; + var materialComponent = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaterialComponent).SelectedKey ?? ""; var concentration = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Concentration).SelectedKey ?? ""; var duration = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Duration).SelectedKey ?? ""; var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; @@ -283,13 +292,13 @@ namespace AideDeJeu.ViewModels.Library spell.Type.ToLower().Contains(school.ToLower()) && (spell.Source != null && spell.Source.Contains(source)) && (spell.Classes != null && spell.Classes.Contains(classe)) && - (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && + MatchContainsOrNot(spell.Ritual, ritual) && (spell.CastingTime != null) && spell.CastingTime.Contains(castingTime) && (spell.Range != null) && spell.Range.Contains(range) && - (string.IsNullOrEmpty(verbalComponents) || (spell.VerbalComponent != null && spell.VerbalComponent.Contains(verbalComponents))) && - (string.IsNullOrEmpty(somaticComponents) || (spell.SomaticComponent != null && spell.SomaticComponent.Contains(somaticComponents))) && - (string.IsNullOrEmpty(materialComponents) || (spell.MaterialComponent != null && spell.MaterialComponent.Contains(materialComponents))) && - (string.IsNullOrEmpty(concentration) || (spell.Concentration != null && spell.Concentration.Contains(concentration))) && + MatchContainsOrNot(spell.VerbalComponent, verbalComponent) && + MatchContainsOrNot(spell.SomaticComponent, somaticComponent) && + MatchContainsOrNot(spell.MaterialComponent, materialComponent) && + MatchContainsOrNot(spell.Concentration, concentration) && (spell.Duration != null) && spell.Duration.Contains(duration) && ( (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || diff --git a/Data/HD/hd_spells.md b/Data/HD/hd_spells.md index 3c412fe2..d4a4261e 100644 --- a/Data/HD/hd_spells.md +++ b/Data/HD/hd_spells.md @@ -3,13 +3,13 @@ Classes: Barde|Clerc|Druide|Ensorceleur|Magicien|Ombrelame|Paladin|Rôdeur|Sorcier Levels: Sorts mineurs|Niveau 1|Niveau 2|Niveau 3|Niveau 4|Niveau 5|Niveau 6|Niveau 7|Niveau 8|Niveau 9 Schools: Abjuration|Divination|Enchantement|Évocation|Illusion|Invocation|Nécromancie|Transmutation -Rituals: Rituel +Rituals: 'Rituel| ' CastingTimes: 1 action|1 action bonus|1 réaction|1 minute|10 minutes|1 heure|8 heures|12 heures|24 heures Ranges: personnel|contact|vision|selon l'arme utilisée|spéciale|1,5 mètre|3 mètres|4,50 mètres|9 mètres|12 mètres|18 mètres|27 mètres|30 mètres|36 mètres|45 mètres|90 mètres|150 mètres|450 mètres|1 kilomètre|1,5 kilomètre|7,5 kilomètres|750 kilomètres|illimitée -VerbalComponents: V -SomaticComponents: S -MaterialComponents: M -Concentrations: concentration +VerbalComponents: 'V| ' +SomaticComponents: 'S| ' +MaterialComponents: 'M| ' +Concentrations: 'concentration| ' Durations: instantané|1 round|1 minute|10 minutes|1 heure|2 heures|8 heures|24 heures|1 jour|7 jours|10 jours|30 jours|dissipation|déclenchement|spéciale Sources: SRD|MDR Family: SpellHD diff --git a/Data/library.db b/Data/library.db index 71911a1cfdb4cc98107942c1d477fbb07b1f50e2..bb3b94265f7794031f20f5a0f0c46f6f1a44ae10 100644 GIT binary patch delta 5131 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 OXL86|D8R@Rw*LaMX>}q1 delta 4625 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 diff --git a/Data/spells_hd.md b/Data/spells_hd.md index ff7837a1..857b0953 100644 --- a/Data/spells_hd.md +++ b/Data/spells_hd.md @@ -1,5 +1,5 @@  - +[Manuel des règles](index.md)