|
|
|
|
@ -155,7 +155,22 @@ final class PlayerRegistration: ModelObject, Storable { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func contains(_ searchField: String) -> Bool { |
|
|
|
|
firstName.canonicalVersion.localizedCaseInsensitiveContains(searchField.canonicalVersion) || lastName.canonicalVersion.localizedCaseInsensitiveContains(searchField.canonicalVersion) |
|
|
|
|
let nameComponents = searchField.canonicalVersion.split(separator: " ") |
|
|
|
|
|
|
|
|
|
if nameComponents.count > 1 { |
|
|
|
|
let pairs = nameComponents.pairs() |
|
|
|
|
return pairs.contains(where: { |
|
|
|
|
(firstName.canonicalVersion.localizedCaseInsensitiveContains(String($0)) && |
|
|
|
|
lastName.canonicalVersion.localizedCaseInsensitiveContains(String($1))) || |
|
|
|
|
(firstName.canonicalVersion.localizedCaseInsensitiveContains(String($1)) && |
|
|
|
|
lastName.canonicalVersion.localizedCaseInsensitiveContains(String($0))) |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
return nameComponents.contains { component in |
|
|
|
|
firstName.canonicalVersion.localizedCaseInsensitiveContains(component) || |
|
|
|
|
lastName.canonicalVersion.localizedCaseInsensitiveContains(component) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func isSameAs(_ player: PlayerRegistration) -> Bool { |
|
|
|
|
|