private void OnOpenInReportForm(object obj)
        {
            if (SelectedDocument == null)
            {
                return;
            }

            BaseNewDocumentViewModel viewModel = null;

            if (SelectedDocument.IsReport())
            {
                var report = SelectedDocument.Report as QCReport;
                if (report != null)
                {
                    viewModel = (QCCheckViewModel)MainWindow.ShowView <QCCheckView>();
                    var qcReportViewModel = (BaseNewDocumentViewModel <QCReportViewModel>)viewModel;
                    qcReportViewModel.Document = new QCReportViewModel(report);
                }

                var monthReport = SelectedDocument.Report as QCReport6Month;
                if (monthReport != null)
                {
                    viewModel = (QC6MonthCheckViewModel)MainWindow.ShowView <QC6MonthCheckView>();
                    var qc6MonthViewModel = (BaseNewDocumentViewModel <QCReport6Month>)viewModel;
                    qc6MonthViewModel.Document = monthReport;
                }
            }
            else
            {
                var tachographDocument = SelectedDocument.Document as TachographDocument;
                if (tachographDocument != null)
                {
                    viewModel = tachographDocument.IsDigital
                        ? (NewTachographViewModel)MainWindow.ShowView <NewTachographView>()
                        : (NewTachographViewModel)MainWindow.ShowView <NewAnalogueTachographView>();

                    var tachographHistoryViewModel = (NewTachographViewModel)viewModel;
                    tachographHistoryViewModel.Document = tachographDocument;
                    tachographHistoryViewModel.SetDocumentTypes(tachographDocument.IsDigital);
                    tachographHistoryViewModel.SelectedCustomerContact = viewModel.CustomerContacts.FirstOrDefault(c => string.Equals(c.Name, tachographDocument.CustomerContact, StringComparison.CurrentCultureIgnoreCase));
                }

                var undownloadabilityDocument = SelectedDocument.Document as UndownloadabilityDocument;
                if (undownloadabilityDocument != null)
                {
                    viewModel = (NewUndownloadabilityViewModel)MainWindow.ShowView <NewUndownloadabilityView>();
                    var undownloadabilityViewModel = (BaseNewDocumentViewModel <UndownloadabilityDocument>)viewModel;
                    undownloadabilityViewModel.Document = undownloadabilityDocument;
                }

                var letterForDecommissioningDocument = SelectedDocument.Document as LetterForDecommissioningDocument;
                if (letterForDecommissioningDocument != null)
                {
                    viewModel = (BaseNewDocumentViewModel <LetterForDecommissioningDocument>)MainWindow.ShowView <LetterForDecommissioningView>();
                    var letterForDecommissioningViewModel = (BaseNewDocumentViewModel <LetterForDecommissioningDocument>)viewModel;
                    letterForDecommissioningViewModel.Document = letterForDecommissioningDocument;
                }
            }

            if (viewModel != null)
            {
                viewModel.IsReadOnly    = true;
                viewModel.IsHistoryMode = true;
            }
        }