using Dapper;
using Microsoft.Data.Sqlite;
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;
var connectionString = "Data Source=app.db";
while (true)
{
using (var db = new SqliteConnection(connectionString))
{
System.Console.WriteLine("--- Планеты ---");
// Выводим список планет с номерами
int i = 1;
foreach (var p in db.Query<Planet>("SELECT * FROM planets ORDER BY index_from_sun"))
{
System.Console.WriteLine($"{i++}. {p.Name}");
}
System.Console.Write("\nВведите номер (0 - выход): ");
string input = System.Console.ReadLine();
if (input == "0") break;
// Если ввели число - ищем планету и её спутники
if (int.TryParse(input, out int num) && num > 0)
{
// Получаем название выбранной планеты
var planet = db.QueryFirstOrDefault<Planet>(
"SELECT * FROM planets ORDER BY index_from_sun LIMIT 1 OFFSET @Offset",
new { Offset = num - 1 });
if (planet != null)
{
System.Console.WriteLine($"\nСпутники {planet.Name}:");
// Получаем спутники по ID планеты
foreach (var s in db.Query<Satellite>(
"SELECT * FROM satellites WHERE planet_id = @Id",
new { Id = planet.Id }))
{
System.Console.WriteLine($"- {s.Name}");
}
}
else System.Console.WriteLine("\nТакой планеты нет.");
}
else System.Console.WriteLine("\nОшибка ввода.");
}
System.Console.WriteLine("\nНажмите Enter...");
System.Console.ReadLine();
System.Console.Clear();
}