Убрано лишнее создание
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql" Version="10.0.3" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -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<Dish> dishes)
|
||||
{
|
||||
await db.Dishes.ExecuteDeleteAsync();
|
||||
@@ -146,7 +115,7 @@ static async Task SaveDishesAsync(AppDbContext db, IReadOnlyList<Dish> dishes)
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
static Order? ReadOrder(ConsoleLog log, IReadOnlyList<Dish> dishes)
|
||||
static Order ReadOrder(ConsoleLog log, IReadOnlyList<Dish> dishes)
|
||||
{
|
||||
var dishesByArticle = dishes.ToDictionary(d => d.Article, StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user