using Device;
using EEMSMain.Data;
using EEMSMain.Views;
using GeneralData;
using GlobalData;
using Prism.Ioc;
using System.IO;
using System.Windows;
using UICommon.CommonContainer;
namespace EEMSMain;
///
/// Interaction logic for App.xaml
///
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
return Container.Resolve();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register();
containerRegistry.RegisterSingleton();
containerRegistry.RegisterSingleton();
}
protected override IModuleCatalog CreateModuleCatalog()
{
return new DirectoryModuleCatalog() { ModulePath = Path.Combine(Environment.CurrentDirectory, "Modules") };
}
}
public class CommonContainer(IRegionManager regionManager,
IModuleManager moduleManager, ContainerManager containerManager) : ICommonContainer
{
private const string _MainReginName = "MainRegion";
string ICommonContainer.MainReginName => _MainReginName;
void ICommonContainer.AddModule(string name)
{
moduleManager.LoadModule(name);
}
void ICommonContainer.AddNavigation(ContainerInfo containerInfo)
{
if (containerInfo.IsHidden)
return;
App.Current.Dispatcher.Invoke(() =>
{
containerManager.Containers.TryAdd(containerInfo.Index, containerInfo);
});
}
void ICommonContainer.RequestNavigation(string name)
{
regionManager.RequestNavigate(_MainReginName, name);
}
}