68 lines
2.7 KiB
C#
68 lines
2.7 KiB
C#
using CommunityToolkit.Maui;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using MauiApp.Core.Business;
|
|
using MauiApp.Core.Business.Contracts;
|
|
using MauiApp.Core.RestClient.AuthenticationApi;
|
|
using MauiApp.Core.RestClient.AuthenticationApi.Contracts;
|
|
using MauiApp.Core.RestClient.IntegryApi;
|
|
using MauiApp.Core.RestClient.IntegryApi.Contracts;
|
|
using MauiApp.Core.System.Device;
|
|
using MauiApp.Core.System.Device.Contracts;
|
|
using MauiApp.Core.System.LocalStorage;
|
|
using MauiApp.Core.System.LocalStorage.Contracts;
|
|
using MauiApp.Core.System.Navigation;
|
|
using MauiApp.ViewModels;
|
|
using MauiApp.Views;
|
|
|
|
namespace MauiApp.Core;
|
|
|
|
public static class CoreModule
|
|
{
|
|
public static MauiAppBuilder RegisterAppServices(this MauiAppBuilder applicationBuilder)
|
|
{
|
|
applicationBuilder.Services.AddSingleton<IAccountService, AccountService>();
|
|
applicationBuilder.Services.AddSingleton<IDeviceService, DeviceService>();
|
|
applicationBuilder.Services.AddSingleton<IUserSessionService, UserSessionService>();
|
|
applicationBuilder.Services.AddSingleton<ILocalStorage, LocalStorage>();
|
|
applicationBuilder.Services.AddSingleton<IAuthenticationApiRestClient, AuthenticationApiRestClient>(provider =>
|
|
{
|
|
var deviceService = provider.GetService<IDeviceService>();
|
|
|
|
return new AuthenticationApiRestClient(deviceService)
|
|
{
|
|
BaseUrl = "https://devservices.studioml.it/ems-api/"
|
|
};
|
|
});
|
|
applicationBuilder.Services.AddSingleton<IIntegryApiRestClient, IntegryApiRestClient>(
|
|
provider =>
|
|
{
|
|
var userDataSession = provider.GetService<IUserSessionService>();
|
|
var messenger = provider.GetService<IMessenger>();
|
|
|
|
return new IntegryApiRestClient(userDataSession, messenger)
|
|
{
|
|
BaseUrl = "https://devservices.studioml.it/ems-api/"
|
|
};
|
|
});
|
|
|
|
|
|
applicationBuilder.Services.AddSingleton<IIntegryLoginRestClient, IntegryLoginRestClient>();
|
|
applicationBuilder.Services.AddSingleton<IIntegrySystemRestClient, IntegrySystemRestClient>();
|
|
|
|
|
|
applicationBuilder.Services.AddSingleton<IMessenger, WeakReferenceMessenger>();
|
|
applicationBuilder.Services.AddSingleton<INavigationService, NavigationService>();
|
|
|
|
|
|
return applicationBuilder;
|
|
}
|
|
|
|
public static MauiAppBuilder RegisterViews(this MauiAppBuilder mauiAppBuilder)
|
|
{
|
|
mauiAppBuilder.Services.AddSingleton<AppShell>();
|
|
mauiAppBuilder.Services.AddTransientWithShellRoute<MainPage, MainPageViewModel>(nameof(MainPage));
|
|
mauiAppBuilder.Services.AddTransientWithShellRoute<LoginPage, LoginPageViewModel>(nameof(LoginPage));
|
|
|
|
return mauiAppBuilder;
|
|
}
|
|
} |