From 3db0c6fa3cc925754692d75d441cd38fb80a4bc3 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Tue, 3 Nov 2020 15:50:45 +0200 Subject: Fixed issue with PPC export multiple jobs invalid characters. --- .../Tango.PPC.Jobs/ViewModels/JobsViewVM.cs | 2 +- .../Tango.PPC.Storage/ViewModels/MainViewVM.cs | 6 +----- .../ExtensionMethods/StringExtensions.cs | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs index a6ccad7de..64931cbe3 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs @@ -809,7 +809,7 @@ namespace Tango.PPC.Jobs.ViewModels { var jobFile = await job.ToJobFile(); - using (FileStream fs = new FileStream(Path.Combine(result.Path, jobFile.Name) + ExplorerFileDefinition.Job.Extension, FileMode.Create)) + using (FileStream fs = new FileStream(Path.Combine(result.Path, jobFile.Name.ToValidFileName()) + ExplorerFileDefinition.Job.Extension, FileMode.Create)) { jobFile.WriteTo(fs); } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs index b9d59334c..9b22fcdb5 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs @@ -22,7 +22,6 @@ namespace Tango.PPC.Storage.ViewModels { private bool _allow_exit; private ExplorerFileItem _selectedItem; - private static char[] _invalidChars = System.IO.Path.GetInvalidFileNameChars(); private String _currentPath; public String CurrentPath @@ -238,10 +237,7 @@ namespace Tango.PPC.Storage.ViewModels if (text != null) { - foreach (var c in _invalidChars) - { - text = text.Replace(c.ToString(), ""); - } + text = text.ToValidFileName(); _fileName = text; RaisePropertyChanged(nameof(FileName)); diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs index ef17f0279..97c8773d6 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs @@ -224,6 +224,28 @@ public static class StringExtensions ); } + /// + /// Removes any invalid file name characters from the string. + /// + /// The string. + /// + public static string ToValidFileName(this string str) + { + char[] _invalidChars = System.IO.Path.GetInvalidFileNameChars(); + + String validFileName = str; + + if (validFileName != null) + { + foreach (var c in _invalidChars) + { + validFileName = validFileName.Replace(c.ToString(), ""); + } + } + + return validFileName; + } + public static String ToStringOrEmpty(this String str) { return str != null ? str : String.Empty; -- cgit v1.3.1