private static void openWindowHandler(WindowFactoryData data)
        {
            Window window    = null;
            object viewModel = null;

            switch (data.WindowType)
            {
            case WindowClassType.MainWindow:
                window    = new MainWindow();
                viewModel = new MainWindowViewModel();
                break;

            case WindowClassType.Catalog:
                window    = new Catalog();
                viewModel = new CatalogViewModel(data.DataAgggregator);
                break;

            default:
                break;
            }

            if (window == null || viewModel == null)
            {
                return;
            }

            window.DataContext = viewModel;
            FactoryService.Register(viewModel as ViewModelBase, window);

            // Attemps to find a parent window based on what ViewModel sent the request.
            Window parentWindow = FactoryService.GetWindowReference(data.CallingViewModel);

            if (parentWindow != null)
            {
                window.Owner = parentWindow;
            }

            if (data.Modal)
            {
                window.ShowDialog();
            }
            else
            {
                window.Show();
            }
        }