Skip to content

Commit 53b1d1c

Browse files
committed
* Added ability to export ProcessDetail objects from GUI
* Code improvements and refactoring
1 parent b148dfd commit 53b1d1c

File tree

4 files changed

+98
-108
lines changed

4 files changed

+98
-108
lines changed

MemPlus/Business/UTILS/Utils.cs

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
using System.Diagnostics;
44
using System.Management;
55
using System.Security.Principal;
6+
using System.Windows;
67
using MemPlus.Business.LOG;
78
using MemPlus.Business.PROCESS;
89
using MemPlus.Business.RAM;
10+
using Microsoft.Win32;
911

1012
namespace MemPlus.Business.UTILS
1113
{
@@ -58,6 +60,87 @@ internal static List<RamStick> GetRamSticks()
5860
return ramSticks;
5961
}
6062

63+
/// <summary>
64+
/// Export all RamStick objects
65+
/// </summary>
66+
/// <param name="logController">The LogController object that can be used to add logs</param>
67+
internal static void ExportRamSticks(LogController logController)
68+
{
69+
List<RamStick> ramSticks = GetRamSticks();
70+
if (ramSticks == null || ramSticks.Count == 0) return;
71+
72+
SaveFileDialog sfd = new SaveFileDialog
73+
{
74+
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
75+
};
76+
if (sfd.ShowDialog() != true) return;
77+
try
78+
{
79+
// ReSharper disable once SwitchStatementMissingSomeCases
80+
switch (sfd.FilterIndex)
81+
{
82+
//Filterindex starts at 1
83+
case 1:
84+
RamDataExporter.ExportText(sfd.FileName, ramSticks);
85+
break;
86+
case 2:
87+
RamDataExporter.ExportHtml(sfd.FileName, ramSticks);
88+
break;
89+
case 3:
90+
RamDataExporter.ExportCsv(sfd.FileName, ramSticks);
91+
break;
92+
case 4:
93+
RamDataExporter.ExportExcel(sfd.FileName, ramSticks);
94+
break;
95+
}
96+
MessageBox.Show("Exported all data!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
97+
}
98+
catch (Exception ex)
99+
{
100+
logController.AddLog(new ApplicationLog(ex.Message));
101+
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
102+
}
103+
}
104+
105+
/// <summary>
106+
/// Export all ProcessDetail objects
107+
/// </summary>
108+
/// <param name="logController">The LogController object that can be used to add logs</param>
109+
internal static void ExportProcessDetails(LogController logController)
110+
{
111+
SaveFileDialog sfd = new SaveFileDialog
112+
{
113+
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
114+
};
115+
if (sfd.ShowDialog() != true) return;
116+
try
117+
{
118+
// ReSharper disable once SwitchStatementMissingSomeCases
119+
switch (sfd.FilterIndex)
120+
{
121+
//Filterindex starts at 1
122+
case 1:
123+
ProcessDetailExporter.ExportText(sfd.FileName, GetProcessDetails(logController));
124+
break;
125+
case 2:
126+
ProcessDetailExporter.ExportHtml(sfd.FileName, GetProcessDetails(logController));
127+
break;
128+
case 3:
129+
ProcessDetailExporter.ExportCsv(sfd.FileName, GetProcessDetails(logController));
130+
break;
131+
case 4:
132+
ProcessDetailExporter.ExportExcel(sfd.FileName, GetProcessDetails(logController));
133+
break;
134+
}
135+
MessageBox.Show("All data has been exported!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
136+
}
137+
catch (Exception ex)
138+
{
139+
logController.AddLog(new ApplicationLog(ex.Message));
140+
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
141+
}
142+
}
143+
61144
/// <summary>
62145
/// Retrieve a list of ProcessDetail objects
63146
/// </summary>

MemPlus/Views/Windows/MainWindow.xaml.cs

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.ComponentModel;
34
using System.Reflection;
45
using System.Windows;
@@ -7,6 +8,7 @@
78
using MemPlus.Business.EXPORT;
89
using MemPlus.Business.GUI;
910
using MemPlus.Business.LOG;
11+
using MemPlus.Business.PROCESS;
1012
using MemPlus.Business.RAM;
1113
using MemPlus.Business.UTILS;
1214
using Microsoft.Win32;
@@ -619,37 +621,17 @@ private void ProcessAnalyzerMenuItem_OnClick(object sender, RoutedEventArgs e)
619621
/// <param name="e">The RoutedEventArgs</param>
620622
private void ExportRamAnalyzerDataMenuItem_OnClick(object sender, RoutedEventArgs e)
621623
{
622-
SaveFileDialog sfd = new SaveFileDialog
623-
{
624-
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
625-
};
626-
if (sfd.ShowDialog() != true) return;
627-
try
628-
{
629-
// ReSharper disable once SwitchStatementMissingSomeCases
630-
switch (sfd.FilterIndex)
631-
{
632-
//Filterindex starts at 1
633-
case 1:
634-
RamDataExporter.ExportText(sfd.FileName, Utils.GetRamSticks());
635-
break;
636-
case 2:
637-
RamDataExporter.ExportHtml(sfd.FileName, Utils.GetRamSticks());
638-
break;
639-
case 3:
640-
RamDataExporter.ExportCsv(sfd.FileName, Utils.GetRamSticks());
641-
break;
642-
case 4:
643-
RamDataExporter.ExportExcel(sfd.FileName, Utils.GetRamSticks());
644-
break;
645-
}
646-
MessageBox.Show("All data has been exported!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
647-
}
648-
catch (Exception ex)
649-
{
650-
_logController.AddLog(new ApplicationLog(ex.Message));
651-
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
652-
}
624+
Utils.ExportRamSticks(_logController);
625+
}
626+
627+
/// <summary>
628+
/// Method that is called when the ProcessAnalyzer data should be exported
629+
/// </summary>
630+
/// <param name="sender">The object that called this method</param>
631+
/// <param name="e">The RoutedEventArgs</param>
632+
private void ExportProcessAnalyzerDataMenuItem_OnClick(object sender, RoutedEventArgs e)
633+
{
634+
Utils.ExportProcessDetails(_logController);
653635
}
654636

655637
/// <summary>
@@ -753,10 +735,5 @@ private void MainWindow_OnClosing(object sender, CancelEventArgs e)
753735
// Disable the RAM Monitor to prevent exceptions from being thrown
754736
_ramController?.DisableMonitor();
755737
}
756-
757-
private void ExportProcessAnalyzerDataMenuItem_OnClick(object sender, RoutedEventArgs e)
758-
{
759-
throw new NotImplementedException();
760-
}
761738
}
762739
}

MemPlus/Views/Windows/ProcessAnalyzerWindow.xaml.cs

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
using System;
22
using System.Windows;
33
using System.Windows.Input;
4-
using MemPlus.Business.EXPORT;
54
using MemPlus.Business.GUI;
65
using MemPlus.Business.LOG;
76
using MemPlus.Business.PROCESS;
87
using MemPlus.Business.UTILS;
9-
using Microsoft.Win32;
108

119
namespace MemPlus.Views.Windows
1210
{
@@ -107,42 +105,7 @@ private void BtnClear_OnClick(object sender, RoutedEventArgs e)
107105
/// <param name="e">The RoutedEventArgs</param>
108106
private void BtnExport_OnClick(object sender, RoutedEventArgs e)
109107
{
110-
SaveFileDialog sfd = new SaveFileDialog
111-
{
112-
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
113-
};
114-
115-
if (sfd.ShowDialog() != true) return;
116-
_logController.AddLog(new ApplicationLog("Exporting process details"));
117-
ExportTypes.ExportType type;
118-
switch (sfd.FilterIndex)
119-
{
120-
default:
121-
type = ExportTypes.ExportType.Text;
122-
break;
123-
case 2:
124-
type = ExportTypes.ExportType.Html;
125-
break;
126-
case 3:
127-
type = ExportTypes.ExportType.Csv;
128-
break;
129-
case 4:
130-
type = ExportTypes.ExportType.Excel;
131-
break;
132-
}
133-
134-
try
135-
{
136-
//TODO: ProcessDetailExporter
137-
138-
MessageBox.Show("All process details have been exported!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
139-
_logController.AddLog(new ApplicationLog("Done exporting process details"));
140-
}
141-
catch (Exception ex)
142-
{
143-
_logController.AddLog(new ApplicationLog(ex.Message));
144-
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
145-
}
108+
Utils.ExportProcessDetails(_logController);
146109
}
147110

148111
/// <summary>

MemPlus/Views/Windows/RamAnalyzerWindow.xaml.cs

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -146,40 +146,7 @@ private void BtnRefresh_OnClick(object sender, RoutedEventArgs e)
146146
/// <param name="e">The RoutedEventArgs</param>
147147
private void BtnExport_OnClick(object sender, RoutedEventArgs e)
148148
{
149-
List<RamStick> ramSticks = Utils.GetRamSticks();
150-
if (ramSticks == null || ramSticks.Count == 0) return;
151-
152-
SaveFileDialog sfd = new SaveFileDialog
153-
{
154-
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
155-
};
156-
if (sfd.ShowDialog() != true) return;
157-
try
158-
{
159-
// ReSharper disable once SwitchStatementMissingSomeCases
160-
switch (sfd.FilterIndex)
161-
{
162-
//Filterindex starts at 1
163-
case 1:
164-
RamDataExporter.ExportText(sfd.FileName, ramSticks);
165-
break;
166-
case 2:
167-
RamDataExporter.ExportHtml(sfd.FileName, ramSticks);
168-
break;
169-
case 3:
170-
RamDataExporter.ExportCsv(sfd.FileName, ramSticks);
171-
break;
172-
case 4:
173-
RamDataExporter.ExportExcel(sfd.FileName, ramSticks);
174-
break;
175-
}
176-
MessageBox.Show("Exported all data!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
177-
}
178-
catch (Exception ex)
179-
{
180-
_logController.AddLog(new ApplicationLog(ex.Message));
181-
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
182-
}
149+
Utils.ExportRamSticks(_logController);
183150
}
184151

185152
/// <summary>

0 commit comments

Comments
 (0)