public bool Export()
        {
            try
            {
                if (!ExportCalculationItemsRecursively(calculationGroup, tempFolderPath))
                {
                    return(false);
                }

                if (itemExported)
                {
                    ZipFileExportHelper.CreateZipFileFromExportedFiles(tempFolderPath, filePath);
                }

                return(true);
            }
            catch (CriticalFileWriteException e)
            {
                log.ErrorFormat(Resources.MacroStabilityInwardsCalculationGroupExporter_Export_Exception_0_no_stability_projects_exported,
                                e.Message);
                return(false);
            }
            finally
            {
                if (Directory.Exists(tempFolderPath))
                {
                    DirectoryHelper.TryDelete(tempFolderPath);
                }
            }
        }
Пример #2
0
        public void CreateZipFileFromExportedFiles_OperationThrowsIOException_ThrowsCriticalFileWriteException()
        {
            // Setup
            string directoryPath = TestHelper.GetScratchPadPath(nameof(CreateZipFileFromExportedFiles_OperationThrowsIOException_ThrowsCriticalFileWriteException));

            Directory.CreateDirectory(directoryPath);

            string sourceFolderPath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO),
                                                   nameof(ZipFileExportHelper));
            string destinationFilePath = Path.Combine(directoryPath, "test.zip");

            try
            {
                using (new DirectoryPermissionsRevoker(directoryPath, FileSystemRights.Write))
                {
                    // Call
                    void Call() => ZipFileExportHelper.CreateZipFileFromExportedFiles(sourceFolderPath, destinationFilePath);

                    // Assert
                    var exception       = Assert.Throws <CriticalFileWriteException>(Call);
                    var expectedMessage = $"Er is een onverwachte fout opgetreden tijdens het schrijven van het bestand '{destinationFilePath}'.";
                    Assert.AreEqual(expectedMessage, exception.Message);
                    Assert.IsNotNull(exception.InnerException);
                }
            }
            finally
            {
                DirectoryHelper.TryDelete(directoryPath);
            }
        }
        public bool Export()
        {
            try
            {
                if (!ExportWaterLevelsForNormProbabilities() ||
                    !ExportWaterLevelCalculationsForUserDefinedTargetProbabilities() ||
                    !ExportWaveHeightCalculationsForUserDefinedTargetProbabilities())
                {
                    return(false);
                }

                ZipFileExportHelper.CreateZipFileFromExportedFiles(tempFolderPath, filePath);
                return(true);
            }
            catch (CriticalFileWriteException e)
            {
                log.ErrorFormat(RiskeerCommonIOResources.HydraulicBoundaryLocationsExporter_Error_Exception_0_no_HydraulicBoundaryLocations_exported,
                                e.Message);
                return(false);
            }
            finally
            {
                if (Directory.Exists(tempFolderPath))
                {
                    DirectoryHelper.TryDelete(tempFolderPath);
                }
            }
        }
Пример #4
0
        public void CreateZipFileFromExportedFiles_DestinationFilePathNull_ThrowsArgumentException()
        {
            // Call
            void Call() => ZipFileExportHelper.CreateZipFileFromExportedFiles("test", null);

            // Assert
            Assert.Throws <ArgumentException>(Call);
        }
Пример #5
0
        public void CreateZipFileFromExportedFiles_SourceFolderPathNull_ThrowsArgumentException()
        {
            // Call
            void Call() => ZipFileExportHelper.CreateZipFileFromExportedFiles(null, "test");

            // Assert
            Assert.Throws <ArgumentException>(Call);
        }
Пример #6
0
        public void CreateZipFileFromExportedFiles_FileAlreadyExists_ReplacesFileWithNewlyCreatedZipFile()
        {
            // Setup
            string directoryPath = TestHelper.GetScratchPadPath(nameof(CreateZipFileFromExportedFiles_FileAlreadyExists_ReplacesFileWithNewlyCreatedZipFile));

            Directory.CreateDirectory(directoryPath);

            string sourceFolderPath1 = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO),
                                                    nameof(ZipFileExportHelper), "Set1");
            string destinationFilePath = Path.Combine(directoryPath, "test.zip");

            try
            {
                ZipFileExportHelper.CreateZipFileFromExportedFiles(sourceFolderPath1, destinationFilePath);

                // Precondition
                Assert.IsTrue(File.Exists(destinationFilePath));
                using (ZipArchive zipArchive = ZipFile.OpenRead(destinationFilePath))
                {
                    var expectedFiles = new[]
                    {
                        "TestFile1.txt",
                        "TestFile2.txt",
                        "TestFile3.txt",
                        "TestFile4.txt"
                    };
                    CollectionAssert.AreEquivalent(expectedFiles, zipArchive.Entries.Select(e => e.FullName));
                }

                string sourceFolderPath2 = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO),
                                                        nameof(ZipFileExportHelper), "Set2");

                // Call
                ZipFileExportHelper.CreateZipFileFromExportedFiles(sourceFolderPath2, destinationFilePath);

                // Assert
                Assert.IsTrue(File.Exists(destinationFilePath));
                using (ZipArchive zipArchive = ZipFile.OpenRead(destinationFilePath))
                {
                    var expectedFiles = new[]
                    {
                        "TestFile5.txt",
                        "TestFile6.txt",
                        "TestFile7.txt"
                    };
                    CollectionAssert.AreEquivalent(expectedFiles, zipArchive.Entries.Select(e => e.FullName));
                }
            }
            finally
            {
                DirectoryHelper.TryDelete(directoryPath);
            }
        }