Александр Никульшин,
2. Создавай HttpClient один раз в каком-нибудь одном месте и переиспользуй. Или используй IHttpClientFactory
4. А где dbContext диспозится?
И что там на счёт Task.Run?
Вполне возможно, что у тебя одновременно отрабатывает и сохранение и выгрузка.
Александр Никульшин,
1. Нельзя к одному DbContext обращаться из нескольких потоков. Тем более, раз у тебя sqlite, то в принципе нельзя одновременно к одной базе из разных потоков обращаться.
2.
await new HttpClient()
Нельзя так писать. У тебя так просто сокеты все утекут и ты не сможешь больше запросы делать.
3.
await забыл. Нельзя .Result делать
4. Где создаётся экземпляр db и _db?
У меня больше всего подозрения на Task.Run, так как нельзя проверить, как в реальности у тебя код исполняется.
(Что и в каком порядке).
Из-за Task.Run - не известно, когда на самом деле оно всё завершается.
Может быть даже не кэширование, а просто транзакция.
Например если на читающем контексте транзакция началась раньше, чем было сделано сохранение в пишущем - тогда сама база может отдать старые данные.
Точно ли нужно все 5 уровней? Или может можно как-то развернуть в более плоскую структуру?
Если это прям дерево-дерево, то можно сделать какой-нибудь вложенный в таблицу treeview
MaminProgrammist, посмотрел ещё, как в VK похожий элемент сделан. Там треугольник тоже отдельно идёт, но он реализован как-то через ::after и border, Но как это работает я не понял
MaminProgrammist, имею в виду, что рисовать не один только треугольник, а всю фигуру целиком. https://bennettfeely.com/clippy/
Сам далёк от фронта, но кажется, что с помощью этого это возможно.
Домен нельзя продать, так как "владелец" им не владеет.
Домен зарегистрирован на имя "владельца", но в полной мере принадлежит он только регистратору.
Так что договор будет не купли-продажи, а просто об оказании какой-то услуги, в результате которой домен будет зарегистрирован уже на нового владельца