Beispiel #1
0
        private void RunTests()
        {
            try
            {
                NotifyStartRunningTests();

                _arkadeApi.RunTests(_testSession);

                _testSession.TestSummary = new TestSummary(_numberOfProcessedFiles, _numberOfProcessedRecords, _numberOfTestsFinished);

                _testSession.AddLogEntry("Test run completed.");

                SaveHtmlReport();

                _testRunCompletedSuccessfully = true;
                _statusEventHandler.RaiseEventOperationMessage(Resources.GUI.TestrunnerFinishedOperationMessage, null, OperationMessageStatus.Ok);
                NotifyFinishedRunningTests();
            }
            catch (ArkadeException e)
            {
                _testSession?.AddLogEntry("Test run failed: " + e.Message);
                _log.Error(e.Message, e);
                _statusEventHandler.RaiseEventOperationMessage(Resources.GUI.TestrunnerFinishedWithError, e.Message, OperationMessageStatus.Error);
                NotifyFinishedRunningTests();
            }
            catch (Exception e)
            {
                _testSession?.AddLogEntry("Test run failed: " + e.Message);
                _log.Error(e.Message, e);

                var operationMessageBuilder = new StringBuilder();

                if (e.GetType() == typeof(FileNotFoundException))
                {
                    string nameOfMissingFile = new FileInfo(((FileNotFoundException)e).FileName).Name;
                    operationMessageBuilder.Append(string.Format(Resources.GUI.FileNotFoundMessage, nameOfMissingFile));
                }
                else
                {
                    operationMessageBuilder.Append(e.Message);
                }

                string fileName = new DetailedExceptionMessage(e).WriteToFile();

                if (!string.IsNullOrEmpty(fileName))
                {
                    operationMessageBuilder.AppendLine("\n" + string.Format(Resources.GUI.DetailedErrorMessageInfo, fileName));
                }

                string operationMessage = operationMessageBuilder.ToString();

                _statusEventHandler.RaiseEventOperationMessage(
                    Resources.GUI.TestrunnerFinishedWithError, operationMessage, OperationMessageStatus.Error
                    );

                NotifyFinishedRunningTests();
            }
        }
        private void CreatePackageRunEngine(string outputDirectory)
        {
            try
            {
                string packageFilePath = _arkadeApi.CreatePackage(_testSession, outputDirectory);

                string packageOutputContainer = new FileInfo(packageFilePath).DirectoryName;

                string argument = "/select, \"" + packageOutputContainer + "\"";
                System.Diagnostics.Process.Start("explorer.exe", argument);

                StatusMessageText = "IP og metadata lagret i ";
                StatusMessagePath = packageOutputContainer;
                Log.Debug("Package created in " + packageOutputContainer);
            }
            catch (Exception exception)
            {
                if (exception is IOException)
                {
                    StatusMessageText = Resources.MetaDataGUI.PackageCreationErrorStatusMessage;
                    Log.Debug(Resources.MetaDataGUI.PackageCreationErrorLogMessage);
                }

                if (exception is InsufficientDiskSpaceException)
                {
                    StatusMessageText = MetaDataGUI.UnsufficientDiskSpaceStatusMessage;
                    Log.Debug(MetaDataGUI.UnsufficientDiskSpaceLogMessage);
                }

                string fileName = new DetailedExceptionMessage(exception).WriteToFile();

                if (!string.IsNullOrEmpty(fileName))
                {
                    StatusMessagePath = string.Format(Resources.GUI.DetailedErrorMessageInfo, fileName);
                }

                _isRunningCreatePackage = false;
            }
            ProgressBarVisibility = Visibility.Hidden;
        }
Beispiel #3
0
        private void RunCreatePackage()
        {
            Log.Information("User action: Create package");

            string suggestedOutputDirectory = new FileInfo(_archiveFileName).DirectoryName;

            var selectOutputDirectoryDialog = new CommonOpenFileDialog
            {
                Title            = Resources.MetaDataUI.SelectOutputDirectoryMessage,
                IsFolderPicker   = true,
                InitialDirectory = suggestedOutputDirectory,
                DefaultFileName  = suggestedOutputDirectory,
            };

            string outputDirectory;

            if (selectOutputDirectoryDialog.ShowDialog() == CommonFileDialogResult.Ok)
            {
                outputDirectory = selectOutputDirectoryDialog.FileName;
            }
            else
            {
                return;
            }

            Log.Information("User action: Choose package destination {informationPackageDestination}", outputDirectory);

            _testSession.ArchiveMetadata = new ArchiveMetadata
            {
                Id = $"UUID:{_testSession.Archive.Uuid}",

                ArchiveDescription = ArchiveMetadataMapper.MapToArchiveDescription(_metaDataArchiveDescription),
                AgreementNumber    = ArchiveMetadataMapper.MapToAgreementNumber(_metaDataArchiveDescription),
                ArchiveCreators    = ArchiveMetadataMapper.MapToArchiveCreators(_metaDataArchiveCreators.Where(c => !c.IsDeleted)),
                Transferer         = ArchiveMetadataMapper.MapToTransferer(_metaDataTransferer),
                Producer           = ArchiveMetadataMapper.MapToProducer(_metaDataProducer),
                Owners             = ArchiveMetadataMapper.MapToArchiveOwners(_metaDataOwners.Where(o => !o.IsDeleted)),
                Recipient          = ArchiveMetadataMapper.MapToRecipient(_metaDataRecipient),
                System             = ArchiveMetadataMapper.MapToSystem(_metaDataSystem),
                ArchiveSystem      = ArchiveMetadataMapper.MapToArchiveSystem(_metaDataArchiveSystem),
                Comments           = ArchiveMetadataMapper.MapToComments(_metaDataComments),
                StartDate          = ArchiveMetadataMapper.MapToStartDate(_metaDataNoarkSection),
                EndDate            = ArchiveMetadataMapper.MapToEndDate(_metaDataNoarkSection),
                ExtractionDate     = ArchiveMetadataMapper.MapToExtractionDate(_metaDataExtractionDate),
            };

            _isRunningCreatePackage = true;
            CreatePackageCommand.RaiseCanExecuteChanged();

            PackageType packageType = SelectedPackageTypeSip
                ? PackageType.SubmissionInformationPackage
                : PackageType.ArchivalInformationPackage;

            // todo must be async

            try
            {
                string packageFilePath = _arkadeApi.CreatePackage(_testSession, packageType, outputDirectory);

                string packageOutputContainer = new FileInfo(packageFilePath).DirectoryName;

                string argument = "/select, \"" + packageOutputContainer + "\"";
                System.Diagnostics.Process.Start("explorer.exe", argument);

                StatusMessageText = "IP og metadata lagret i ";
                StatusMessagePath = packageOutputContainer;
                Log.Debug("Package created in " + packageOutputContainer);

                _isRunningCreatePackage = false;
                //CreatePackageCommand.RaiseCanExecuteChanged();
            }
            catch (IOException exception)
            {
                StatusMessageText = Resources.MetaDataUI.PackageCreationErrorStatusMessage;
                Log.Debug(Resources.MetaDataUI.PackageCreationErrorLogMessage);

                string fileName = new DetailedExceptionMessage(exception).WriteToFile();

                if (!string.IsNullOrEmpty(fileName))
                {
                    StatusMessagePath = string.Format(Resources.UI.DetailedErrorMessageInfo, fileName);
                }

                _isRunningCreatePackage = false;
            }
        }