Пример #1
0
        public void GetNextAvailableFilename()
        {
            var          tempDirectory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
            const string fixedFileName = "file.txt";
            var          firstFilePath = Path.Combine(tempDirectory, fixedFileName);

            //No directory
            Assert.AreEqual(FileSystemTools.GetNextAvailableFilename(firstFilePath), null);

            Directory.CreateDirectory(tempDirectory);

            //No file
            Assert.AreEqual(FileSystemTools.GetNextAvailableFilename(firstFilePath), firstFilePath);

            //First file
            WriteRandomTextToFile(firstFilePath);
            var filePath = Path.Combine(tempDirectory, "file2.txt");

            Assert.AreEqual(FileSystemTools.GetNextAvailableFilename(firstFilePath), filePath);

            //Second file
            WriteRandomTextToFile(filePath);
            filePath = Path.Combine(tempDirectory, "file3.txt");
            Assert.AreEqual(FileSystemTools.GetNextAvailableFilename(firstFilePath), filePath);

            //Clean up
            var di = new DirectoryInfo(tempDirectory);

            foreach (var file in di.GetFiles())
            {
                file.Delete();
            }

            Directory.Delete(tempDirectory);
        }
Пример #2
0
        public bool ShowOpenROIDocumentDialog(string defaultDataDirectory, List <string> companiesList, string documentPath = "")
        {
            UIServices.SetBusyState();

            var editROIDocView       = new EditROIDocumentView();
            var roiDocumentViewModel = new ROIDocumentViewModel {
                DocumentPath = documentPath, DataDirectory = defaultDataDirectory
            };

            //Pre-populate new report's default name
            if (string.IsNullOrEmpty(documentPath))
            {
                roiDocumentViewModel.IsNewReport = true;
                roiDocumentViewModel.ROIDocument.DocumentName = Path.GetFileNameWithoutExtension(
                    FileSystemTools.GetNextAvailableFilename(Path.Combine(defaultDataDirectory, "ROIDocument.xml")));

                //Todo: Recall modal last new report defaults (culture, etc.)
            }

            roiDocumentViewModel.CompaniesList = companiesList;
            roiDocumentViewModel.LoadExistingImages();

            var editReportCommand = new ButtonServiceCommand("Reporting", roiDocumentViewModel.EditReportCommand, false, false, false);
            var okCommand         = new ButtonServiceCommand("OK", roiDocumentViewModel.SaveROIDocumentCommand, false, false, true);
            var cancelCommand     = new ButtonServiceCommand("Cancel", roiDocumentViewModel.CancelCommand, true, false, true);

            var result = dialogService.ShowDialogWindow($"Edit {roiDocumentViewModel.ROIDocument.DocumentName}", new[] { editReportCommand, okCommand, cancelCommand }, null, editROIDocView, roiDocumentViewModel, false);

            if (result == okCommand)
            {
                var gridSaveDirectory = Path.Combine(defaultDataDirectory, Constants.AppSettingsDirectoryName);
                if (!Directory.Exists(gridSaveDirectory))
                {
                    Directory.CreateDirectory(gridSaveDirectory);
                }
                editROIDocView.SaveDocumentGrids(gridSaveDirectory);
                return(true);
            }

            return(false);
        }
Пример #3
0
        private void InstallFactoryReportTemplates(bool doFactoryReset = false)
        {
            var reportTemplateDirectory = Path.Combine(DataDirectory, Constants.ReportTemplateDirectoryName);

            if (!Directory.Exists(reportTemplateDirectory))
            {
                Directory.CreateDirectory(reportTemplateDirectory);
            }

            if ((Directory.GetFiles(reportTemplateDirectory, "*.repx", SearchOption.TopDirectoryOnly).Length == 0) || doFactoryReset)
            {
                var factoryTemplateFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates");
                foreach (var file in Directory.GetFiles(factoryTemplateFolder, "*.repx", SearchOption.TopDirectoryOnly).ToList())
                {
                    if (doFactoryReset)
                    {
                        var targetFilePath = Path.Combine(reportTemplateDirectory, Path.GetFileName(file));
                        try
                        {
                            if (DialogService.Instance.ShowMessageQuestion(
                                    $"{Path.GetFileName(file)} already exists. Create a backup copy?", "Backup Template"))
                            {
                                var backupTargetFilePath = FileSystemTools.GetNextAvailableFilename(targetFilePath);
                                File.Move(targetFilePath, backupTargetFilePath);
                            }
                            File.Copy(file, targetFilePath, true);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                        }
                    }
                    else
                    {
                        File.Copy(file, Path.Combine(reportTemplateDirectory, Path.GetFileName(file)));
                    }
                }
            }
        }
Пример #4
0
        private void CloneROIDocument()
        {
            var selectedROIViewModel = SelectedRoiDocViewModelList[0];

            if (selectedROIViewModel == null)
            {
                return;
            }

            var suggestedFileNameNoExt = Path.GetFileNameWithoutExtension(FileSystemTools.GetNextAvailableFilename(Path.Combine(DataDirectory,
                                                                                                                                Path.GetFileNameWithoutExtension(selectedROIViewModel.DocumentPath) + "-copy.xml")));

            var reportName = DialogService.Instance.InputDialog("Clone Report", "", "Enter new report name:",
                                                                suggestedFileNameNoExt);

            if (string.IsNullOrEmpty(reportName))
            {
                return;
            }

            var newReportFilePath = Path.Combine(Path.GetDirectoryName(selectedROIViewModel.DocumentPath), reportName + ".xml");

            if (File.Exists(newReportFilePath))
            {
                DialogService.Instance.ShowMessageError("Error: File already exists: " + Environment.NewLine + Environment.NewLine + newReportFilePath);
            }
            else
            {
                File.Copy(SelectedRoiDocViewModelList[0].DocumentPath, newReportFilePath);
                var roiDocumentViewModel = new ROIDocumentViewModel
                {
                    DocumentPath  = newReportFilePath,
                    DataDirectory = DataDirectory,
                    ROIDocument   = { DocumentName = reportName, DateCreated = DateTime.Now, DateModified = DateTime.Now }
                };
                roiDocumentViewModel.SaveROIDocument();
                ScanFileSystemForROIDocuments();
            }
        }