using LogoForceTestApp.Modules.MainModule.Views;
using LogoForceTestApp.Services;
using LogoForceTestApp.Core;
using Prism.Ioc;
using Prism.Modularity;
using Prism.Regions;
using StatementMachineService.Core;
using AutoMapper;
using LogForceTestApp.Modules.MainModule;
using AutoMapper.EquivalencyExpression;
using LogoForceTestApp.Modules.MainModule.Services;
using LogoForceTestApp.Modules.MainModule.ViewModels;

namespace LogoForceTestApp.Modules.MainModule
{
    public class MainModule : IModule
    {
        private readonly IRegionManager _regionManager;

        public MainModule(IRegionManager regionManager, IMapper mapper)
        {
            _regionManager = regionManager;
           
        }

        public void OnInitialized(IContainerProvider containerProvider)
        {
            _regionManager.RequestNavigate(RegionNames.ContentRegion, "MainPage");
        }

        public void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterSingleton<PLC>();
            
            containerRegistry.RegisterDialog<ChartPage1>();
            containerRegistry.RegisterDialog<ChartPage2>();
            containerRegistry.RegisterDialog<ChartPage3>();

            containerRegistry.RegisterForNavigation<OperationLogPage>();
            containerRegistry.RegisterForNavigation<MainPage>();
            containerRegistry.RegisterForNavigation<LogPage>();
            containerRegistry.RegisterForNavigation<DataPage>();
            containerRegistry.RegisterForNavigation<LoginPage>();
            containerRegistry.RegisterForNavigation<ParamPage>();
            containerRegistry.RegisterForNavigation<QualityTracing>();
            containerRegistry.RegisterForNavigation<SopPage>();
            containerRegistry.RegisterForNavigation<AccountPage>();
            containerRegistry.RegisterForNavigation<StatementPage>();
            containerRegistry.RegisterSingleton<IStateService, StateService>();
            containerRegistry.RegisterSingleton<IScanService, ScanService>();
            containerRegistry.RegisterSingleton<IWarningUpdateService, WarningUpdateService>();
           

        }
    }
}