diff --git a/src/Console/Console.csproj b/src/Console/Console.csproj index c28f9e5..fe0a4bf 100644 --- a/src/Console/Console.csproj +++ b/src/Console/Console.csproj @@ -23,7 +23,6 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - diff --git a/src/Console/Program.cs b/src/Console/Program.cs index 31c6eb3..aea4268 100644 --- a/src/Console/Program.cs +++ b/src/Console/Program.cs @@ -7,7 +7,6 @@ using ConsoleApp.Logging; using Domain.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; -using Npgsql; var configuration = new ConfigurationBuilder() .SetBasePath(AppContext.BaseDirectory) @@ -28,7 +27,6 @@ try { log.WriteLine("Инициализация базы данных..."); await using var db = CreateDbContext(connectionString); - await EnsureDatabaseAsync(connectionString); await db.Database.MigrateAsync(); log.WriteLine("База данных готова."); @@ -51,10 +49,6 @@ try } var order = ReadOrder(log, dishes); - if (order is null) - { - return; - } log.WriteLine(order.ToString()); log.WriteLine("Отправка заказа на сервер..."); @@ -105,31 +99,6 @@ static AppDbContext CreateDbContext(string connectionString) return new AppDbContext(options); } -static async Task EnsureDatabaseAsync(string connectionString) -{ - var builder = new NpgsqlConnectionStringBuilder(connectionString); - var databaseName = builder.Database - ?? throw new InvalidOperationException("Имя базы данных не указано в строке подключения."); - - builder.Database = "postgres"; - - await using var connection = new NpgsqlConnection(builder.ConnectionString); - await connection.OpenAsync(); - - await using var checkCommand = connection.CreateCommand(); - checkCommand.CommandText = "SELECT 1 FROM pg_database WHERE datname = @name"; - checkCommand.Parameters.AddWithValue("name", databaseName); - - if (await checkCommand.ExecuteScalarAsync() is not null) - { - return; - } - - await using var createCommand = connection.CreateCommand(); - createCommand.CommandText = $"CREATE DATABASE \"{databaseName.Replace("\"", "\"\"")}\""; - await createCommand.ExecuteNonQueryAsync(); -} - static async Task SaveDishesAsync(AppDbContext db, IReadOnlyList dishes) { await db.Dishes.ExecuteDeleteAsync(); @@ -146,7 +115,7 @@ static async Task SaveDishesAsync(AppDbContext db, IReadOnlyList dishes) await db.SaveChangesAsync(); } -static Order? ReadOrder(ConsoleLog log, IReadOnlyList dishes) +static Order ReadOrder(ConsoleLog log, IReadOnlyList dishes) { var dishesByArticle = dishes.ToDictionary(d => d.Article, StringComparer.OrdinalIgnoreCase);