protected List <PresetItem> GetUserStatesWithUniqueDisplayNames(UserStateAttributeValueToken target) { var allUserState = _context.GetUserStates().Select(x => new UserStateSearchItem(x)).ToList(); var suggestibleUserStates = GetValidUserStatesList(target); var userStatesWithUniqueDisplayNames = GetObjectsWithUniqueNames(allUserState, x => x.State.Title, x => x.State.Name); var resultUserStates = userStatesWithUniqueDisplayNames.Where(x => !string.IsNullOrEmpty(x.Key)) .Select(x => { var suggestibleUserState = suggestibleUserStates.FirstOrDefault(ss => ss.State.Name.Equals(x.Value.State.Name, StringComparison.OrdinalIgnoreCase)); var presetItem = new PresetItem( id: x.Value.State.Id.ToString(), displayValue: x.Key, hint: x.Value.State.IsDeleted ? "Deleted state" : null, isVisible: suggestibleUserState != null, isDeleted: x.Value.State.IsDeleted) { Tooltip = suggestibleUserState?.Tooltip }; return(presetItem); }) .ToList(); return(resultUserStates); }