2024-02-25 19:52:48 +04:00
using Microsoft.Extensions.DependencyInjection ;
using Microsoft.Extensions.Logging ;
using NLog.Extensions.Logging ;
2024-03-24 18:34:36 +04:00
using SushiBarBusinessLogic ;
2024-02-25 19:52:48 +04:00
using SushiBarBusinessLogic.BusinessLogic ;
2024-03-24 20:42:18 +04:00
using SushiBarBusinessLogic.OfficePackage ;
using SushiBarBusinessLogic.OfficePackage.Implements ;
2024-02-25 19:52:48 +04:00
using SushiBarContracts.BusinessLogicsContracts ;
using SushiBarContracts.StoragesContracts ;
2024-03-25 09:56:01 +04:00
using SushiBarDatabaseImplement.Implements ;
2024-02-25 19:52:48 +04:00
using SushiBarView ;
2024-03-24 18:34:36 +04:00
using SushiBarView.Reports ;
2024-03-24 23:52:35 +04:00
using System.Text ;
2024-02-25 19:52:48 +04:00
2024-02-25 19:23:21 +04:00
namespace SushiBar
{
internal static class Program
{
2024-02-25 19:52:48 +04:00
private static ServiceProvider ? _serviceProvider ;
public static ServiceProvider ? ServiceProvider = > _serviceProvider ;
2024-02-25 19:23:21 +04:00
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main ( )
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
2024-02-25 19:52:48 +04:00
ApplicationConfiguration . Initialize ( ) ;
var services = new ServiceCollection ( ) ;
2024-03-24 23:52:35 +04:00
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> PDF
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NuGet <20> <> <EFBFBD> <EFBFBD> <EFBFBD> System.Text.Encoding.CodePages
Encoding . RegisterProvider ( CodePagesEncodingProvider . Instance ) ;
2024-02-25 19:52:48 +04:00
ConfigureServices ( services ) ;
_serviceProvider = services . BuildServiceProvider ( ) ;
Application . Run ( _serviceProvider . GetRequiredService < FormMain > ( ) ) ;
}
private static void ConfigureServices ( ServiceCollection services )
{
services . AddLogging ( option = >
{
option . SetMinimumLevel ( LogLevel . Information ) ;
option . AddNLog ( "nlog.config" ) ;
} ) ;
services . AddTransient < IComponentStorage , ComponentStorage > ( ) ;
services . AddTransient < IOrderStorage , OrderStorage > ( ) ;
services . AddTransient < ISushiStorage , SushiStorage > ( ) ;
2024-04-06 17:20:22 +04:00
services . AddTransient < IClientStorage , ClientStorage > ( ) ;
2024-04-20 21:27:36 +04:00
services . AddTransient < IImplementerStorage , ImplementerStorage > ( ) ;
2024-03-24 18:34:36 +04:00
2024-02-25 19:52:48 +04:00
services . AddTransient < IComponentLogic , ComponentLogic > ( ) ;
services . AddTransient < IOrderLogic , OrderLogic > ( ) ;
services . AddTransient < ISushiLogic , SushiLogic > ( ) ;
2024-04-06 17:20:22 +04:00
services . AddTransient < IClientLogic , ClientLogic > ( ) ;
2024-03-24 18:34:36 +04:00
services . AddTransient < IReportLogic , ReportLogic > ( ) ;
2024-04-20 21:27:36 +04:00
services . AddTransient < IImplementerLogic , ImplementerLogic > ( ) ;
2024-03-24 18:34:36 +04:00
2024-03-24 20:42:18 +04:00
services . AddTransient < AbstractSaveToExcel , SaveToExcel > ( ) ;
services . AddTransient < AbstractSaveToWord , SaveToWord > ( ) ;
services . AddTransient < AbstractSaveToPdf , SaveToPdf > ( ) ;
2024-02-25 19:52:48 +04:00
services . AddTransient < FormMain > ( ) ;
services . AddTransient < FormComponent > ( ) ;
services . AddTransient < FormComponents > ( ) ;
services . AddTransient < FormCreateOrder > ( ) ;
services . AddTransient < FormSushi > ( ) ;
services . AddTransient < FormSushiComponent > ( ) ;
services . AddTransient < FormSushis > ( ) ;
2024-04-06 17:20:22 +04:00
services . AddTransient < FormClients > ( ) ;
2024-03-24 18:34:36 +04:00
services . AddTransient < FormReportOrders > ( ) ;
services . AddTransient < FormReportSushiComponent > ( ) ;
2024-04-20 21:27:36 +04:00
services . AddTransient < FormImplementer > ( ) ;
services . AddTransient < FormImplementers > ( ) ;
2024-03-24 18:34:36 +04:00
2024-02-25 19:23:21 +04:00
}
}
}