diff --git a/StructureHelper/Infrastructure/UI/Resources/Converters.xaml b/StructureHelper/Infrastructure/UI/Resources/Converters.xaml
index d46f2f9..cfda1fd 100644
--- a/StructureHelper/Infrastructure/UI/Resources/Converters.xaml
+++ b/StructureHelper/Infrastructure/UI/Resources/Converters.xaml
@@ -12,4 +12,5 @@
+
\ No newline at end of file
diff --git a/StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml b/StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml
index c41aa47..3154b07 100644
--- a/StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml
+++ b/StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml
@@ -1,6 +1,6 @@
-
+
@@ -19,4 +19,27 @@
SelectedItem="{Binding SelectedTargetItem}" ItemTemplate="{Binding ItemDataDemplate}"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StructureHelper/Services/Exports/ExportToFileInputData.cs b/StructureHelper/Services/Exports/ExportToFileInputData.cs
new file mode 100644
index 0000000..951f612
--- /dev/null
+++ b/StructureHelper/Services/Exports/ExportToFileInputData.cs
@@ -0,0 +1,16 @@
+using StructureHelperLogics.NdmCalculations.Analyses;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Services.Exports
+{
+ internal class ExportToFileInputData : IExportToFileInputData
+ {
+ public string FileName { get; set; }
+ public string Filter { get; set; }
+ public string Title { get; set; }
+ }
+}
diff --git a/StructureHelper/Services/Exports/ExportToFileService.cs b/StructureHelper/Services/Exports/ExportToFileService.cs
new file mode 100644
index 0000000..a6bb77b
--- /dev/null
+++ b/StructureHelper/Services/Exports/ExportToFileService.cs
@@ -0,0 +1,97 @@
+using StructureHelper.Windows.Errors;
+using StructureHelper.Windows.ViewModels.Errors;
+using StructureHelperCommon.Infrastructures.Strings;
+using StructureHelperLogics.NdmCalculations.Analyses;
+using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace StructureHelper.Services.Exports
+{
+ internal class ExportToFileService : IExportService
+ {
+ IExportToFileInputData inputData;
+ IExportResultLogic logic;
+
+ public ExportToFileService(IExportToFileInputData inputData, IExportResultLogic logic)
+ {
+ this.inputData = inputData;
+ this.logic = logic;
+ }
+ public void Export()
+ {
+ SaveFileDialog saveFileDialog = new SaveFileDialog();
+ saveFileDialog.Filter = inputData.Filter;
+ saveFileDialog.Title = inputData.Title;
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ var filename = saveFileDialog.FileName;
+ // If the file name is not an empty string open it for saving.
+ if (filename != "")
+ {
+ SaveFile(filename);
+ }
+ }
+ }
+ private void SaveFile(string filename)
+ {
+ if (File.Exists(filename))
+ {
+ DeleteFile(filename);
+ }
+
+ try
+ {
+ ExportFile(filename);
+ }
+ catch (Exception ex)
+ {
+ var vm = new ErrorProcessor()
+ {
+ ShortText = ErrorStrings.FileCantBeSaved + ex + filename,
+ DetailText = $"{ex}"
+ };
+ new ErrorMessage(vm).ShowDialog();
+ }
+ }
+ private void DeleteFile(string filename)
+ {
+ try
+ {
+ File.Delete(filename);
+ }
+ catch (Exception ex)
+ {
+ var vm = new ErrorProcessor()
+ {
+ ShortText = ErrorStrings.FileCantBeDeleted + ex + filename,
+ DetailText = $"{ex}"
+ };
+ new ErrorMessage(vm).ShowDialog();
+ }
+ }
+ private void ExportFile(string fileName)
+ {
+ logic.FileName = fileName;
+ logic.Export();
+ try
+ {
+ OpenFile(fileName);
+ }
+ catch (Exception) { }
+ }
+ private void OpenFile(string fileName)
+ {
+ var filopener = new Process();
+ var startInfo = new ProcessStartInfo(fileName) { UseShellExecute = true };
+ filopener.StartInfo = startInfo;
+ filopener.Start();
+ }
+ }
+}
diff --git a/StructureHelper/Services/Exports/IExportService.cs b/StructureHelper/Services/Exports/IExportService.cs
new file mode 100644
index 0000000..0885465
--- /dev/null
+++ b/StructureHelper/Services/Exports/IExportService.cs
@@ -0,0 +1,14 @@
+using StructureHelperLogics.NdmCalculations.Analyses;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Services.Exports
+{
+ internal interface IExportService
+ {
+ void Export();
+ }
+}
diff --git a/StructureHelper/Services/Exports/IExportToFileInputData.cs b/StructureHelper/Services/Exports/IExportToFileInputData.cs
new file mode 100644
index 0000000..4712c74
--- /dev/null
+++ b/StructureHelper/Services/Exports/IExportToFileInputData.cs
@@ -0,0 +1,16 @@
+using StructureHelperLogics.NdmCalculations.Analyses;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Services.Exports
+{
+ internal interface IExportToFileInputData
+ {
+ string FileName { get; set; }
+ string Filter { get; set; }
+ string Title { get; set; }
+ }
+}
diff --git a/StructureHelper/StructureHelper.csproj.user b/StructureHelper/StructureHelper.csproj.user
index 7866b62..d1809bb 100644
--- a/StructureHelper/StructureHelper.csproj.user
+++ b/StructureHelper/StructureHelper.csproj.user
@@ -9,7 +9,7 @@
-
+
Code
@@ -38,7 +38,7 @@
Designer
-
+
Designer
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculator/GeometryCalculatorResultView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculatorViews/GeometryCalculatorResultView.xaml
similarity index 79%
rename from StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculator/GeometryCalculatorResultView.xaml
rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculatorViews/GeometryCalculatorResultView.xaml
index 405e059..e7cddb7 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculator/GeometryCalculatorResultView.xaml
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/GeometryCalculatorViews/GeometryCalculatorResultView.xaml
@@ -1,14 +1,18 @@
-
+
+
+
+