[chronojump] Sprint and RaceAnalyzer export copy the csv ensuring destination is a file



commit 14dcb2865954a59233fbf61e5b05ee1e001d6fb6
Author: Xavier de Blas <xaviblas gmail com>
Date:   Tue Jun 29 17:08:54 2021 +0200

    Sprint and RaceAnalyzer export copy the csv ensuring destination is a file

 src/exportFiles/re.cs             | 10 +++++++---
 src/exportFiles/sprint.cs         | 12 ++++++++----
 src/gui/app1/chronojump.cs        |  2 +-
 src/gui/app1/runEncoder.cs        |  4 ++--
 src/gui/app1/runEncoderAnalyze.cs |  2 +-
 src/run.cs                        |  6 +++++-
 src/runEncoder.cs                 |  5 ++++-
 7 files changed, 28 insertions(+), 13 deletions(-)
---
diff --git a/src/exportFiles/re.cs b/src/exportFiles/re.cs
index cb56c032d..74581d975 100644
--- a/src/exportFiles/re.cs
+++ b/src/exportFiles/re.cs
@@ -184,7 +184,7 @@ public class RunEncoderExport : ExportFiles
 
                }
 
-               Util.FileDelete(RunEncoder.GetCSVResultsFileName());
+               Util.FileDelete(RunEncoder.GetCSVResultsURL());
 
                // call the graph
 
@@ -208,7 +208,7 @@ public class RunEncoderExport : ExportFiles
                }
 
                LogB.Information("Waiting creation of file... ");
-               while ( ! ( Util.FileReadable(RunEncoder.GetCSVResultsFileName()) || cancel ) )
+               while ( ! ( Util.FileReadable(RunEncoder.GetCSVResultsURL()) || cancel ) )
                        ;
 
                if(cancel)
@@ -225,7 +225,11 @@ public class RunEncoderExport : ExportFiles
                        return false;
 
                // copy the CSV
-               File.Copy(RunEncoder.GetCSVResultsFileName(), exportURL, true);
+               //if includeImages || includeInstantaneous, exportURL is a dir, so need a filename to have 
File.Copy on all systems
+               if(includeImages || includeInstantaneous)
+                       File.Copy(RunEncoder.GetCSVResultsURL(), Path.Combine(exportURL, 
RunEncoder.GetCSVResultsFileName()), true);
+               else
+                       File.Copy(RunEncoder.GetCSVResultsURL(), exportURL, true);
 
                return true;
        }
diff --git a/src/exportFiles/sprint.cs b/src/exportFiles/sprint.cs
index 58468cac0..3b608f372 100644
--- a/src/exportFiles/sprint.cs
+++ b/src/exportFiles/sprint.cs
@@ -56,7 +56,7 @@ public class SprintExport : ExportFiles
        private string getTempGraphsDir() {
                return Path.Combine(Path.GetTempPath(), "chronojump_sprint_export_graphs");
        }
-       
+
        protected override void createOrEmptyDirs()
        {
                createOrEmptyDir(getTempProgressDir());
@@ -147,7 +147,7 @@ public class SprintExport : ExportFiles
                        sprge_l.Add(sprge);
                }
 
-               Util.FileDelete(RunInterval.GetCSVResultsFileName());
+               Util.FileDelete(RunInterval.GetCSVResultsURL());
 
                //no data, maybe because all the tests have just two tracks and cannot be processed as sprint
                if(sprge_l.Count == 0)
@@ -170,7 +170,7 @@ public class SprintExport : ExportFiles
                }
 
                LogB.Information("Waiting creation of file... ");
-               while ( ! ( Util.FileReadable(RunInterval.GetCSVResultsFileName()) || cancel ) )
+               while ( ! ( Util.FileReadable(RunInterval.GetCSVResultsURL()) || cancel ) )
                        ;
 
                if(cancel)
@@ -180,7 +180,11 @@ public class SprintExport : ExportFiles
                                        "chronojump_races_sprint_export_graphs"));
 
                // copy the CSV
-               File.Copy(RunInterval.GetCSVResultsFileName(), exportURL, true);
+               //if includeImages, exportURL is a dir, so need a filename to have File.Copy on all systems
+               if(includeImages)
+                       File.Copy(RunInterval.GetCSVResultsURL(), Path.Combine(exportURL, 
RunInterval.GetCSVResultsFileName()), true);
+               else
+                       File.Copy(RunInterval.GetCSVResultsURL(), exportURL, true);
 
                return true;
        }
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index 017886050..7ded55e9c 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -5215,7 +5215,7 @@ public partial class ChronoJumpWindow
                                25);
 
                bool sprintRDoneOk = on_button_sprint_do ();
-               string stringResultsFile = RunInterval.GetCSVResultsFileName();
+               string stringResultsFile = RunInterval.GetCSVResultsURL();
                string line = "";
                if(! sprintRDoneOk || ! File.Exists(stringResultsFile))
                        return;
diff --git a/src/gui/app1/runEncoder.cs b/src/gui/app1/runEncoder.cs
index 24e26b53d..a705f79bc 100644
--- a/src/gui/app1/runEncoder.cs
+++ b/src/gui/app1/runEncoder.cs
@@ -1180,7 +1180,7 @@ public partial class ChronoJumpWindow
        private void raceEncoderCopyToTempAndDoRGraph()
        {
                // 0) delete results file
-               Util.FileDelete(RunEncoder.GetCSVResultsFileName());
+               Util.FileDelete(RunEncoder.GetCSVResultsURL());
 
                // 1) copy file
                File.Copy(lastRunEncoderFullPath, RunEncoder.GetCSVFileName(), true); //can be overwritten
@@ -1198,7 +1198,7 @@ public partial class ChronoJumpWindow
                // 3) display table
                treeview_raceAnalyzer = UtilGtk.RemoveColumns(treeview_raceAnalyzer);
 
-               string contents = Util.ReadFile(RunEncoder.GetCSVResultsFileName(), false);
+               string contents = Util.ReadFile(RunEncoder.GetCSVResultsURL(), false);
 
                //maybe captured data was too low or two different than an sprint.
                //then we have image but maybe we have no sprintResults.csv
diff --git a/src/gui/app1/runEncoderAnalyze.cs b/src/gui/app1/runEncoderAnalyze.cs
index a49b9aaf2..502db00ed 100644
--- a/src/gui/app1/runEncoderAnalyze.cs
+++ b/src/gui/app1/runEncoderAnalyze.cs
@@ -234,7 +234,7 @@ public partial class ChronoJumpWindow
                        writer.WriteLine(Util.RemoveNewLine(Util.StringArrayToString(
                                                        getTreeviewRaceAnalyzerHeaders(), sep), false));
 
-                       string contents = Util.ReadFile(RunEncoder.GetCSVResultsFileName(), false);
+                       string contents = Util.ReadFile(RunEncoder.GetCSVResultsURL(), false);
                        RunEncoderCSV recsv = readRunEncoderCSVContents(contents);
 
                        writer.WriteLine(recsv.ToCSV(preferences.CSVExportDecimalSeparator));
diff --git a/src/run.cs b/src/run.cs
index 2f17a8a6e..670ae8ae0 100644
--- a/src/run.cs
+++ b/src/run.cs
@@ -252,8 +252,12 @@ public class RunInterval : Run
        public static string GetCSVInputMulti() {
                return Path.Combine(Path.GetTempPath(), "sprintInputMulti.csv");
        }
+
        public static string GetCSVResultsFileName() {
-               return Path.Combine(Path.GetTempPath(), "sprintResults.csv");
+               return "sprintResults.csv";
+       }
+       public static string GetCSVResultsURL() {
+               return Path.Combine(Path.GetTempPath(), GetCSVResultsFileName());
        }
 
        public string IntervalTimesString
diff --git a/src/runEncoder.cs b/src/runEncoder.cs
index 5ba0f0d0a..fe727a026 100644
--- a/src/runEncoder.cs
+++ b/src/runEncoder.cs
@@ -188,7 +188,10 @@ public class RunEncoder
        }
        //this contains: "Mass";"Height";"Temperature";"Vw";"Ka";"K.fitted";"Vmax.fitted"; ...
        public static string GetCSVResultsFileName() {
-               return Path.Combine(Path.GetTempPath(), "sprintResults.csv");
+               return "sprintResults.csv";
+       }
+       public static string GetCSVResultsURL() {
+               return Path.Combine(Path.GetTempPath(), GetCSVResultsFileName());
        }
        public static string GetTempFileName() {
                return Path.Combine(Path.GetTempPath(), "cj_race_analyzer_graph.png");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]