forked from ElixorTeam/Palleto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMauiProgram.cs
62 lines (48 loc) · 2.03 KB
/
MauiProgram.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using Append.Blazor.Printing;
using MauiPageFullScreen;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Pl.Desktop.Client.Source.Shared.Api;
using Pl.Desktop.Client.Source.Shared.Extensions;
using Pl.Desktop.Client.Source.Shared.Services.Devices;
using Pl.Shared.Web.Extensions;
using TailwindMerge.Extensions;
namespace Pl.Desktop.Client;
public static class MauiProgram
{
public static MauiAppBuilder CreateMauiApp()
{
MauiAppBuilder builder = MauiApp.CreateBuilder();
builder.Configuration.LoadAppSettings<IDesktopAssembly>();
builder
.UseMauiApp<App>()
.UseFullScreen()
.RegisterRefitClients();
builder.Services.AddMauiBlazorWebView();
builder.Services
.SetupMauiLocalizer(builder.Configuration)
.AddRefitEndpoints<IDesktopAssembly>()
.AddDelegatingHandlers<IDesktopAssembly>()
.AddFluentUIComponents(c => c.ValidateClassNames = false);
builder.Services
.AddScoped<HtmlRenderer>()
.AddScoped<IPrintingService, PrintingService>();
builder.Services.AddTailwindMerge();
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
builder.Logging.AddDebug();
#endif
builder.Services.AddFluxor(options =>
{
options.WithLifetime(StoreLifetime.Singleton);
options.ScanAssemblies(typeof(IDesktopAssembly).Assembly);
});
IConfigurationSection systemSection = builder.Configuration.GetSection("System");
bool isScalesMock = systemSection.GetValueOrDefault("MockScales", false);
bool isPrinterMock = systemSection.GetValueOrDefault("MockPrinter", false);
builder.Services
.AddServiceOrMock<IScalesService, ScalesService, MockScalesService>(isScalesMock, ServiceLifetime.Singleton)
.AddServiceOrMock<IPrinterService, PrinterService, MockPrinterService>(isPrinterMock, ServiceLifetime.Singleton);
return builder;
}
}