protected override void RegisterRequiredTypes(IContainerRegistry containerRegistry)
        {
            base.RegisterRequiredTypes(containerRegistry);

            _container.RegisterSingleton <IServiceLocator, SimpleInjectorServiceLocator>();

            var whitelistedServiceLocator = new WhitelistedServiceLocator(_container);

            RestrictedServiceLocator.Current = whitelistedServiceLocator;
            _container.RegisterSingleton <IWhitelistedServiceLocator>(() => whitelistedServiceLocator);

            _container.RegisterSingleton <IShellManager, ShellManager>();

            _container.RegisterSingleton <IRegionNavigationContentLoader, RegionNavigationContentLoader>();
        }
        } = new TextLogger();                                     // TODO make implementation using NLog

        public void ConfigurePrismDependecies(Container container)
        {
            var locator = new SimpleInjectorServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => locator);
            container.RegisterSingleton <IServiceLocator>(() => locator);

            var whitelistedServiceLocator = new WhitelistedServiceLocator(container);

            RestrictedServiceLocator.Current = whitelistedServiceLocator;
            container.RegisterSingleton <IWhitelistedServiceLocator>(() => whitelistedServiceLocator);

            var regionManager = new RegionManager();

            var shellManager = new ShellManager(whitelistedServiceLocator, regionManager, new WpfTopMostHelper(), _profileSettingsTabs, _applicationSettingsTabs);

            container.RegisterSingleton <IRegionManager>(() => regionManager);
            container.RegisterSingleton <IShellManager>(() => shellManager);

            ConfigureContainer(container);
        }