Загрузка данных


using Dapper;
using Microsoft.Data.Sqlite;

var connection = new SqliteConnection("Data Source=app.db");

while (true)
{
    // Выводим список планет
    var planets = connection.Query("SELECT * FROM planets ORDER BY index_from_sun").ToList();
    
    Console.WriteLine("\nСписок планет:");
    for (int i = 0; i < planets.Count; i++)
    {
        Console.WriteLine($"{i + 1}. {planets[i].name}");
    }

    Console.WriteLine("\nВведите номер планеты (1-8) или 0 для выхода:");
    string input = Console.ReadLine();

    // Выход
    if (input == "0") break;

    // Проверка ввода и вывод спутников
    if (int.TryParse(input, out int num) && num >= 1 && num <= planets.Count)
    {
        var planet = planets[num - 1]; // Берем планету по индексу (num - 1, т.к. индексы с 0)
        
        Console.WriteLine($"\nСпутники планеты {planet.name}:");
        
        // Ищем спутники для этой планеты
        var sats = connection.Query("SELECT * FROM satellites WHERE planet_id = @id", new { id = planet.id }).ToList();
        
        if (sats.Count == 0)
        {
            Console.WriteLine("- (нет)");
        }
        else
        {
            foreach (var s in sats)
            {
                Console.WriteLine($"- {s.name} (размер: {s.size})");
            }
        }
        
        Console.WriteLine("\nНажмите Enter чтобы вернуться...");
        Console.ReadLine();
    }
    else
    {
        Console.WriteLine("\nНекорректная команда. Нажмите Enter...");
        Console.ReadLine();
    }
}