private MatchedUser CreateMatchedUser(Tuple <uint, string, uint[]> match, string query) { var queryLength = (uint)query.Length; var userId = match.Item1; var fullName = match.Item2; var parts = fullName.Split(' '); var nameParts = new List <NamePart>(); for (var i = 0; i < parts.Length; i++) { var matchFound = match.Item3.Any(m => m == i + 1u); var namePart = new NamePart() { Text = parts[i], MatchedSymbolsCount = matchFound ? queryLength : 0 }; nameParts.Add(namePart); } var matchedUser = new MatchedUser { UserId = userId, NameParts = nameParts }; return(matchedUser); }
private MatchedUser CreateMatchedUser(string query, User arg) { var parts = arg.FullName.Split(' '); var nameParts = parts.Select(part => new NamePart() { Text = part, MatchedSymbolsCount = !string.IsNullOrWhiteSpace(query) && part.StartsWith(query, StringComparison.CurrentCultureIgnoreCase) ? (uint)query.Length : 0 }).ToList(); var matchedUser = new MatchedUser { UserId = arg.Id, NameParts = nameParts }; return(matchedUser); }