private void RegisterShowGroupsPageMessage(GroupsPageViewModel groupsPageViewModel) { _messenger.Register<ShowGroupsPageMessage>(this, x => { IPage page = _vs.ExecuteFunction<GroupsPageViewModel, IPage>((IWindow) Current.MainWindow, groupsPageViewModel); _viewModel.CurrentPage = page; _messenger.Send(new RefreshDataFromRepositoriesMessage()); }); }
public void ConfigureContainer() { ShootingRangeEntities entities = new ShootingRangeEntities(); _messenger = new Messenger(); ContainerBuilder builder = new ContainerBuilder(); builder.RegisterInstance(_messenger).As<IMessenger>(); IShooterNumberService shooterNumberService = new ShooterNumberService(new ShooterNumberConfigDataStore(entities)); IPersonDataStore personDataStore = new PersonDataStore(entities); IShooterCollectionDataStore shooterCollectionDataStore = new ShooterCollectionDataStore(entities); ICollectionShooterDataStore collectionShooterDataStore = new CollectionShooterDataStore(entities); IShooterDataStore shooterDataStore = new ShooterDataStore(entities); IShooterParticipationDataStore shooterParticipationDataStore = new ShooterParticipationDataStore(entities); ISessionDataStore sessionDataStore = new SessionDataStore(entities); ISessionSubtotalDataStore sessionSubtotalDataStore = new SessionSubtotalDataStore(entities); IShotDataStore shotDataStore = new ShotDataStore(entities); IBarcodePrintService barcodePrinter = new PtouchBarcodePrinter(); IBarcodeBuilderService barcodeBuilder = new Barcode2Of5InterleavedService(); ISsvShooterDataWriterService shooterDataWriter = new SsvFileWriter(@"C:\Sius\SiusData\SSVDaten\SSV_schuetzen.txt"); builder.RegisterInstance(shooterNumberService).As<IShooterNumberService>(); builder.RegisterInstance(personDataStore).As<IPersonDataStore>(); builder.RegisterInstance(shooterDataStore).As<IShooterDataStore>(); builder.RegisterInstance(new ShooterParticipationDataStore(entities)).As<IShooterParticipationDataStore>(); builder.RegisterInstance(shooterCollectionDataStore).As<IShooterCollectionDataStore>(); builder.RegisterInstance(collectionShooterDataStore).As<ICollectionShooterDataStore>(); builder.RegisterInstance(sessionDataStore).As<ISessionDataStore>(); builder.RegisterInstance(sessionSubtotalDataStore).As<ISessionSubtotalDataStore>(); builder.RegisterInstance(shotDataStore).As<IShotDataStore>(); builder.RegisterInstance(barcodePrinter).As<IBarcodePrintService>(); builder.RegisterInstance(barcodeBuilder).As<IBarcodeBuilderService>(); builder.RegisterInstance(shooterDataWriter).As<ISsvShooterDataWriterService>(); _vs = new ViewService(); ViewServiceHandler vsh = new ViewServiceHandler(); #region Windows and Dialogs _vs.RegisterFunction<MainWindowViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<MainWindow>((Window) window, model)); #endregion _vs.RegisterFunction<PersonsPageViewModel, IPage>( (window, model) => vsh.GetUserControl<UcPersons>((Window) window, model)); _vs.RegisterFunction<GroupsPageViewModel, IPage>( (window, model) => vsh.GetUserControl<UcGroups>((Window) window, model)); _vs.RegisterFunction<ResultsPageViewModel, IPage>( (window, model) => vsh.GetUserControl<UcResults>((Window) window, model)); _vs.RegisterFunction<RankViewModel, IPage>( (window, model) => vsh.GetUserControl<UcRankings>((Window) window, model)); _vs.RegisterFunction<CreatePersonViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<CreatePerson>((Window) window, model)); _vs.RegisterFunction<CreateGroupingViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<CreateGrouping>((Window) window, model)); _vs.RegisterFunction<EditGroupingViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<EditGrouping>((Window) window, model)); _vs.RegisterFunction<SelectParticipationViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<AddParticipationToShooterDialog>((Window) window, model)); _vs.RegisterFunction<SelectGroupingViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<AddGroupingToShooterDialog>((Window) window, model)); _vs.RegisterFunction<SelectShooterViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<AddShooterToGroupingDialog>((Window) window, model)); _vs.RegisterFunction<ReassignSessionViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<ReassignSessionDialog>((Window) window, model)); _vs.RegisterFunction<ReassignProgramNumberViewModel, IWindow>( (window, model) => vsh.GetOwnedWindow<ReassignProgramNumber>((Window) window, model)); _vs.RegisterFunction<YesNoMessageBoxViewModel, IWindow>( (w, m) => vsh.GetOwnedWindow<YesNoMessageBox>((Window) w, m)); _vs.RegisterFunction<MessageBoxViewModel, IWindow>((w, m) => vsh.GetOwnedWindow<OkMessageBox>((Window) w, m)); InitializeServiceDeskConfiguration(); _config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ServiceDeskConfiguration serviceDeskConfiguration = _config.GetSection("ServiceDeskConfiguration") as ServiceDeskConfiguration; if (serviceDeskConfiguration == null) { serviceDeskConfiguration = new ServiceDeskConfiguration(); _config.Sections.Add("ServiceDeskConfiguration", serviceDeskConfiguration); } builder.Register(c => serviceDeskConfiguration); IContainer container = builder.Build(); ServiceLocator.SetLocatorProvider(() => new AutofacServiceLocator(container)); PersonsPageViewModel personsPageViewModel = new PersonsPageViewModel(); personsPageViewModel.Initialize(); GroupsPageViewModel groupsPageViewModel = new GroupsPageViewModel(); groupsPageViewModel.Initialize(); ResultsPageViewModel resultsPageViewModel = new ResultsPageViewModel(); resultsPageViewModel.Initialize(); RankViewModel rankViewModel = new RankViewModel(); rankViewModel.Initialize(); RegisterCreatePersonDialog(personDataStore); RegisterEditPersonDialog(personDataStore); RegisterCreateGroupingDialog(shooterCollectionDataStore, serviceDeskConfiguration); RegisterEditGroupingDialog(shooterCollectionDataStore); RegisterDeletePersonDialog(personDataStore); RegisterDeleteGroupingDialog(shooterCollectionDataStore); RegisterAddShooterToGroupingDialog(collectionShooterDataStore); RegisterDeleteShooterDialog(shooterDataStore); RegisterAddGroupingToShooterDialog(collectionShooterDataStore); RegisterRemoveGroupingFromShooterDialog(collectionShooterDataStore); RegisterAddParticipationToShooterDialog(shooterParticipationDataStore); RegisterRemoveParticipationFromShooterDialog(shooterParticipationDataStore); RegisterMessageBoxDialog(); RegisterReassignSessionDialog(sessionDataStore); RegisterReassignShooterNumberDialog(sessionDataStore); RegisterShowShooterPageMessage(personsPageViewModel); RegisterShowGroupsPageMessage(groupsPageViewModel); // RegisterShowResultsPageMessage(resultsPageViewModel); RegisterShowRankingsPageMessage(rankViewModel); }