Refactor the program startup code
This commit is contained in:
@@ -27,37 +27,21 @@ namespace EveOPreview
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Program.InitializeWinFormsGui();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
|
||||||
|
|
||||||
IIocContainer container = new LightInjectContainer();
|
IApplicationController controller = Program.InitializeApplicationController();
|
||||||
|
|
||||||
// UI classes
|
Program.SetupApplicationConttroller(controller, Program.GetCustomConfigFile(args));
|
||||||
IApplicationController controller = new ApplicationController(container)
|
|
||||||
.RegisterView<IMainView, MainForm>()
|
|
||||||
.RegisterView<IThumbnailView, ThumbnailView>()
|
|
||||||
.RegisterView<IThumbnailDescriptionView, ThumbnailDescriptionView>()
|
|
||||||
.RegisterInstance(new ApplicationContext());
|
|
||||||
|
|
||||||
// Application services
|
|
||||||
controller.RegisterService<IThumbnailManager, ThumbnailManager>()
|
|
||||||
.RegisterService<IThumbnailViewFactory, ThumbnailViewFactory>()
|
|
||||||
.RegisterService<IThumbnailDescriptionViewFactory, ThumbnailDescriptionViewFactory>()
|
|
||||||
.RegisterService<IConfigurationStorage, ConfigurationStorage>()
|
|
||||||
.RegisterInstance<IAppConfig>(new AppConfig())
|
|
||||||
.RegisterInstance<IThumbnailConfig>(new ThumbnailConfig());
|
|
||||||
|
|
||||||
controller.Create<IAppConfig>().ConfigFileName = Program.GetCustomConfigFile(args);
|
|
||||||
|
|
||||||
controller.Run<MainPresenter>();
|
controller.Run<MainPresenter>();
|
||||||
|
|
||||||
token = null;
|
token = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse startup parameters
|
|
||||||
// Simple approach is used because something like NParams would be an overkill here
|
|
||||||
private static string GetCustomConfigFile(string[] args)
|
private static string GetCustomConfigFile(string[] args)
|
||||||
{
|
{
|
||||||
|
// Parse startup parameters
|
||||||
|
// Simple approach is used because something like NParams would be an overkill here
|
||||||
string configFile = null;
|
string configFile = null;
|
||||||
foreach (string arg in args)
|
foreach (string arg in args)
|
||||||
{
|
{
|
||||||
@@ -108,5 +92,38 @@ namespace EveOPreview
|
|||||||
return result ? token : null;
|
return result ? token : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void InitializeWinFormsGui()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IApplicationController InitializeApplicationController()
|
||||||
|
{
|
||||||
|
IIocContainer container = new LightInjectContainer();
|
||||||
|
|
||||||
|
// UI classes
|
||||||
|
IApplicationController controller = new ApplicationController(container)
|
||||||
|
.RegisterView<IMainView, MainForm>()
|
||||||
|
.RegisterView<IThumbnailView, ThumbnailView>()
|
||||||
|
.RegisterView<IThumbnailDescriptionView, ThumbnailDescriptionView>()
|
||||||
|
.RegisterInstance(new ApplicationContext());
|
||||||
|
|
||||||
|
// Application services
|
||||||
|
controller.RegisterService<IThumbnailManager, ThumbnailManager>()
|
||||||
|
.RegisterService<IThumbnailViewFactory, ThumbnailViewFactory>()
|
||||||
|
.RegisterService<IThumbnailDescriptionViewFactory, ThumbnailDescriptionViewFactory>()
|
||||||
|
.RegisterService<IConfigurationStorage, ConfigurationStorage>()
|
||||||
|
.RegisterInstance<IAppConfig>(new AppConfig())
|
||||||
|
.RegisterInstance<IThumbnailConfig>(new ThumbnailConfig());
|
||||||
|
|
||||||
|
return controller;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetupApplicationConttroller(IApplicationController controller, string configFile)
|
||||||
|
{
|
||||||
|
controller.Create<IAppConfig>().ConfigFileName = configFile;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user