private void Execute(ReportOutExportType?outExportType, string reportScriptId)
        {
            var script = InitializeScript(outExportType, reportScriptId);

            UpdateOrAddReportElement(outExportType, script);

            var processor = new MatrixTransformAnalysisProcessor(_data);
            var tempPath  = FilePathHelper.Instance.GenerateTemporaryFilePath(
                FileConstants.AssayReportFileExtension,
                "Report");

            processor.Process(tempPath);
            ProcessOutputFile(processor, outExportType);
        }
        private void ProcessOutputFile(MatrixTransformAnalysisProcessor analysisProcessor, ReportOutExportType?outExportType)
        {
            switch (outExportType)
            {
            case ReportOutExportType.Xml:
                TryOpenFile(analysisProcessor.OutputReportFilePath);
                break;

            case ReportOutExportType.Xlsx:
                var tempReportPath = Path.Combine(Path.GetDirectoryName(analysisProcessor.OutputReportFilePath), "report.xlsx");
                XmlConverter.Convert(analysisProcessor.OutputReportFilePath, tempReportPath, FileSaveFormat.Xlsx);
                TryOpenFile(tempReportPath);
                break;

            case null:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(outExportType), outExportType, null);
            }
        }