// private static IContainer container; public static FIDialog CreateInstance(FILogicQueries logicQueriesFlight, FILogicCmds logicCommandsFlight, ISLogicQueries logicQueriesShipInfo, ISLogicCommands logicCommandsShipInfo) { // Dependency Injection //Flights CServiceOfferFlight serviveOfferFlight = new CServiceOfferFlight(logicCommandsFlight); CServiceSearchFlight serviceSearchFlight = new CServiceSearchFlight(logicQueriesFlight); //Shipping CServiceOfferShipInfo serviveOfferShipInfo = new CServiceOfferShipInfo(logicCommandsShipInfo); CServiceSearchShipInfo serviceSearchShipInfo = new CServiceSearchShipInfo(logicQueriesShipInfo); //Flights CViewModelMainFlight viewModelMainFlight = new CViewModelMainFlight(serviceSearchFlight); CViewModelFilterFlight viewModelFilterFlight = new CViewModelFilterFlight(serviceSearchFlight, viewModelMainFlight); CViewModelUpdateFlight viewModelUpdateFlight = new CViewModelUpdateFlight(serviceSearchFlight, serviveOfferFlight, viewModelMainFlight); CViewModelAdministrationFlight viewModelAdministrationFlight = new CViewModelAdministrationFlight(serviveOfferFlight, viewModelMainFlight, serviceSearchFlight, viewModelUpdateFlight); //Shipping CViewModelMainShipInfo viewModelMainShipInfo = new CViewModelMainShipInfo(serviceSearchShipInfo); CViewModelFilterShipInfo viewModelFilterShipInfo = new CViewModelFilterShipInfo(serviceSearchShipInfo, viewModelMainShipInfo); CViewModelUpdateShipInfo viewModelUpdateShipInfo = new CViewModelUpdateShipInfo(serviceSearchShipInfo, serviveOfferShipInfo, viewModelMainShipInfo); CViewModelAdministrationShipInfo viewModelAdministrationShipInfo = new CViewModelAdministrationShipInfo(serviveOfferShipInfo, viewModelMainShipInfo, serviceSearchShipInfo, viewModelUpdateShipInfo); //Flights CViewUpdateFlight viewUpdateFlight = new CViewUpdateFlight(viewModelUpdateFlight); CViewFilterFlight viewFilterFlight = new CViewFilterFlight(viewModelFilterFlight); CViewAdministrationFlight viewAdministrationFlight = new CViewAdministrationFlight(viewModelAdministrationFlight, viewUpdateFlight); //Shipping CViewUpdateShipInfo viewUpdateShipInfo = new CViewUpdateShipInfo(viewModelUpdateShipInfo); CViewFilterShipInfo viewFilterShipInfo = new CViewFilterShipInfo(viewModelFilterShipInfo); CViewAdministrationShipInfo viewAdministrationShipInfo = new CViewAdministrationShipInfo(viewModelAdministrationShipInfo, viewUpdateShipInfo); CViewMain viewMain = new CViewMain(viewModelMainFlight, viewModelMainShipInfo, viewFilterFlight, viewAdministrationFlight, viewAdministrationShipInfo, viewFilterShipInfo, viewUpdateFlight, viewUpdateShipInfo);; return(viewMain); //CBootstrapper bootstrapper = new CBootstrapper(); //IContainer container = bootstrapper.InitContainer( logicQueries, logicCommands ); //IDialog dialog = container.Resolve<IDialog>(); //return dialog; }
public IContainer InitContainer(FILogicQueries logicQueries, FILogicCmds logicCommands) { ContainerBuilder containerBuilder = new ContainerBuilder(); // Service Layer containerBuilder .RegisterType <CServiceSearchFlight>() .AsSelf() .WithParameter("logicQueries", logicQueries) .SingleInstance(); containerBuilder .RegisterType <CServiceOfferFlight>() .AsSelf() .WithParameter("logicCommands", logicCommands) .SingleInstance(); // ModelView Layer containerBuilder .RegisterType <CViewModelMainFlight>() .AsSelf() .SingleInstance(); // View Layer containerBuilder .RegisterType <CViewMain>() .As <FIDialog>() .SingleInstance(); container = containerBuilder.Build(); return(container); }
void Run() { // MSAccess _dataSourcePath = @"seasky.accdb"; // SQLite //_dataSourcePath = @"C:\0Daten\CarDatabase.db"; try { // FlightData Layer _FdataRead = SFDB_ReadF.CreateInstance(_dataSourcePath); _FdataRead.InitDb(); _FdataWrite = SFDB_WriteF.CreateInstance(_dataSourcePath); _FdataWrite.InitDb(); // ShipInfoData Layer _SdataRead = SFDB_ReadS.CreateInstance(_dataSourcePath); _SdataRead.InitDb(); _SdataWrite = SFDB_WriteS.CreateInstance(_dataSourcePath); _SdataWrite.InitDb(); // FlightLogic Layer _FlogicQueries = FFactoryQueries.CreateInstance(_FdataRead); _FlogicCommands = FFactoryILogicCmds.CreateInstance(_FdataWrite); // FlightLogic Layer _SlogicQueries = SFactoryISLogicQueries.CreateInstance(_SdataRead); _SlogicCommands = SFactoryISLogicCommands.CreateInstance(_SdataWrite); // CarPresentation Layer _dialog = SFactoryIDialog.CreateInstance(_FlogicQueries, _FlogicCommands, _SlogicQueries, _SlogicCommands); // Start the App _app = new Application(); _app.Run(_dialog as Window); } catch (ApplicationException e) { MessageBox.Show(e.Message, "Fehler in der Anwendung 1", MessageBoxButton.OK, MessageBoxImage.Stop); } catch (Exception e) { MessageBox.Show(e.Message, "Fehler in der Anwendung 2", MessageBoxButton.OK, MessageBoxImage.Stop); } finally { if (_FdataRead != null) { _FdataRead.CloseDb(); } if (_FdataWrite != null) { _FdataWrite.CloseDb(); } if (_SdataRead != null) { _SdataRead.CloseDb(); } if (_SdataWrite != null) { _SdataWrite.CloseDb(); } } }
internal CServiceOfferFlight(FILogicCmds logicCommands) { _logicCommands = logicCommands; }