Убрано лишнее создание
This commit is contained in:
@@ -23,7 +23,6 @@
|
|||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Npgsql" Version="10.0.3" />
|
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.2" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ using ConsoleApp.Logging;
|
|||||||
using Domain.Entities;
|
using Domain.Entities;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Npgsql;
|
|
||||||
|
|
||||||
var configuration = new ConfigurationBuilder()
|
var configuration = new ConfigurationBuilder()
|
||||||
.SetBasePath(AppContext.BaseDirectory)
|
.SetBasePath(AppContext.BaseDirectory)
|
||||||
@@ -28,7 +27,6 @@ try
|
|||||||
{
|
{
|
||||||
log.WriteLine("Инициализация базы данных...");
|
log.WriteLine("Инициализация базы данных...");
|
||||||
await using var db = CreateDbContext(connectionString);
|
await using var db = CreateDbContext(connectionString);
|
||||||
await EnsureDatabaseAsync(connectionString);
|
|
||||||
await db.Database.MigrateAsync();
|
await db.Database.MigrateAsync();
|
||||||
log.WriteLine("База данных готова.");
|
log.WriteLine("База данных готова.");
|
||||||
|
|
||||||
@@ -51,10 +49,6 @@ try
|
|||||||
}
|
}
|
||||||
|
|
||||||
var order = ReadOrder(log, dishes);
|
var order = ReadOrder(log, dishes);
|
||||||
if (order is null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.WriteLine(order.ToString());
|
log.WriteLine(order.ToString());
|
||||||
log.WriteLine("Отправка заказа на сервер...");
|
log.WriteLine("Отправка заказа на сервер...");
|
||||||
@@ -105,31 +99,6 @@ static AppDbContext CreateDbContext(string connectionString)
|
|||||||
return new AppDbContext(options);
|
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)
|
static async Task SaveDishesAsync(AppDbContext db, IReadOnlyList<Dish> dishes)
|
||||||
{
|
{
|
||||||
await db.Dishes.ExecuteDeleteAsync();
|
await db.Dishes.ExecuteDeleteAsync();
|
||||||
@@ -146,7 +115,7 @@ static async Task SaveDishesAsync(AppDbContext db, IReadOnlyList<Dish> dishes)
|
|||||||
await db.SaveChangesAsync();
|
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);
|
var dishesByArticle = dishes.ToDictionary(d => d.Article, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user