public MainWindowView(MainWindowViewModel mainWindowViewModel, [KeyFilter("ConfigUpdateView")] ConfigUpdateView configUpdateView)
        {
            InitializeComponent();

            _mainWindow.DataContext = mainWindowViewModel;
            mainWindowViewModel.NavigationService.SetFrame(_mainFrame);

            mainWindowViewModel.NavigationService.NavigateTo(configUpdateView);
        }
        public MainWindowViewModel(NavigationService navigationService,
                                   [KeyFilter("ConfigUpdateView")] ConfigUpdateView configUpdateView,
                                   PatConfigView patConfigView,
                                   DeleterConfigView deleterConfigView,
                                   AttachmentConfigView attachmentConfigView,
                                   RepositoryConfigView repositoryConfigView,
                                   BugFamilyView bugFamilyView,
                                   InfoView infoView,
                                   TestItemsView testItemsView,
                                   FieldMapperView fieldMapperView,
                                   IContext context,
                                   NotificationViewModel notificationViewModel)
        {
            NavigationService = navigationService;

            _patConfigView        = patConfigView;
            _deleterConfigView    = deleterConfigView;
            _attachmentConfigView = attachmentConfigView;
            _repositoryConfigView = repositoryConfigView;
            _bugFamilyView        = bugFamilyView;
            _infoView             = infoView;
            _testItemsView        = testItemsView;
            _fieldMapperView      = fieldMapperView;
            _configUpdateView     = configUpdateView;
            Context = context;
            Context.InitializePats();
            Context.InitializeRepositories();
            NotificationViewModel = notificationViewModel;

            LoadConfigUpdateViewCommand     = new RelayCommand(LoadConfigUpdateView, IsConfigUpdateViewEnabled);
            LoadPatConfigViewCommand        = new RelayCommand(LoadPatConfigView, IsPatConfigViewEnabled);
            LoadDeleterConfigViewCommand    = new RelayCommand(LoadDeleterConfigView, IsDeleterConfigViewEnabled);
            LoadAttachmentConfigViewCommand = new RelayCommand(LoadAttachmentConfigView, IsAttachmentConfigViewEnabled);
            LoadRepositoryConfigViewCommand = new RelayCommand(LoadRepositoryConfigView, IsRepositoryConfigViewEnabled);
            LoadBugFamilyViewCommand        = new RelayCommand(LoadBugFamilyView, IsBugFamilyViewEnabled);
            LoadInfoViewCommand             = new RelayCommand(LoadInfoView, IsInfoViewEnabled);
            LoadTestItemsViewCommand        = new RelayCommand(LoadTestItemsView, IsTestItemsViewEnabled);
            LoadFieldMapperViewCommand      = new RelayCommand(LoadFieldMapperView, IsFieldMapperViewEnabled);
            ShowMessageCommand   = new RelayCommandGeneric <NotificationModel, bool>(NotificationViewModel.ShowMessage, NotificationViewModel.IsShowMessageEnabled);
            LockWorkItemsCommand = new RelayCommand(LockWorkItems, IsLockWorkItemsEnabled);

            _patConfigView.ShowMessageCommand        = ShowMessageCommand;
            _configUpdateView.ShowMessageCommand     = ShowMessageCommand;
            _deleterConfigView.ShowMessageCommand    = ShowMessageCommand;
            _attachmentConfigView.ShowMessageCommand = ShowMessageCommand;
            _repositoryConfigView.ShowMessageCommand = ShowMessageCommand;
            _bugFamilyView.ShowMessageCommand        = ShowMessageCommand;
            _testItemsView.ShowMessageCommand        = ShowMessageCommand;
            _infoView.ShowMessageCommand             = ShowMessageCommand;
            _fieldMapperView.ShowMessageCommand      = ShowMessageCommand;

            CheckPatFreshness(DataAccessService.GetPatConfigFilePath());
        }