using Dapper;
using Microsoft.Data.Sqlite;
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;
var connectionString = "DataSource=app.db";
var connection = new SqliteConnection(connectionString);
bool running = true;
while (running)
{
// Получаем все планеты через Dapper
var planets = connection.Query<Planet>("SELECT * FROM planets ORDER BY index_from_sun").ToList();
Console.WriteLine("\nСписок планет:");
for (int i = 0; i < planets.Count; i++)
{
// Выводим с нумерацией от 1 до N
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 selectedPlanet = planets[num - 1];
Console.WriteLine($"\nСпутники планеты {selectedPlanet.Name}:");
// Ищем спутники для этой планеты через Dapper
var satellites = connection.Query<Satellite>(
"SELECT * FROM satellites WHERE planet_id = @Id",
new { Id = selectedPlanet.Id }).ToList();
if (satellites.Count == 0)
{
Console.WriteLine("- (нет спутников)");
}
else
{
foreach (var sat in satellites)
{
Console.WriteLine($"- {sat.Name} (размер: {sat.Size})");
}
}
Console.WriteLine("\nНажмите Enter чтобы вернуться к списку планет...");
Console.ReadLine();
}
else
{
Console.WriteLine("\nНекорректная команда. Нажмите Enter...");
Console.ReadLine();
}
}