Топорный вариант в лоб, делаете UNION всех трёх запросов от разных прав, где вместо недоступных полей вставляете хоть NULL, хоть в доступе отказано.
Более красивый вариант, у вас есть три вьюшки аля ViewProductByAdmin, которая если прав не хватает возвращает кукишь, а выбор вьюшки уже лежит на клиенте.
У вас прозрачность на нуле, вот и не видать ничего.
Как всегда нужный код _circle.GetColor(ElementColor) ни кто и не приводит, ведь думают, что ошибка наверняка в банальном присвоении значений.
Попросту никак. Вижу только вариант, что вы реализуете своё автодополнение, которое по факту будет вызывать яндексовское, но результат фильтровать только по нужным городам.
Потому что вот это Item customItem = item; не создание нового экземпляра, а просто копирования ссылки. Если вам нужен новый, то надо создавать его через new