Skip to content

Commit 55dfa61

Browse files
committed
* Visual studio being silly again
1 parent 81a432a commit 55dfa61

File tree

20 files changed

+205
-45
lines changed

20 files changed

+205
-45
lines changed

MemPlus/Classes/LOG/LogController.cs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@ namespace MemPlus.Classes.LOG
88
/// </summary>
99
public class LogController
1010
{
11+
#region Variables
1112
/// <summary>
1213
/// The list of available Log objects
1314
/// </summary>
1415
private readonly List<Log> _logList;
16+
#endregion
17+
18+
#region Delegates
1519
/// <summary>
1620
/// Delegate that will be called when a Log object was added
1721
/// </summary>
@@ -48,6 +52,7 @@ public class LogController
4852
/// Method that will be called when a list of Log objects with a specific LogType were removed
4953
/// </summary>
5054
internal LogTypeCleared LogTypeClearedEvent;
55+
#endregion
5156

5257
/// <summary>
5358
/// Initialize a new LogController object
@@ -119,5 +124,49 @@ internal List<Log> GetLogs()
119124
{
120125
return _logList;
121126
}
127+
128+
/// <summary>
129+
/// Export logs to the disk
130+
/// </summary>
131+
/// <param name="path">The path where logs should be stored</param>
132+
/// <param name="logType">The type of logs that should be saved. Can be null if all logs should be saved</param>
133+
/// <param name="exportType">The type of export that should be performed</param>
134+
internal void Export(string path, LogType? logType, ExportType exportType)
135+
{
136+
List<Log> exportList;
137+
138+
if (logType != null)
139+
{
140+
exportList = new List<Log>();
141+
foreach (Log l in _logList)
142+
{
143+
if (l.LogType == logType)
144+
{
145+
exportList.Add(l);
146+
}
147+
}
148+
}
149+
else
150+
{
151+
exportList = _logList;
152+
}
153+
154+
// ReSharper disable once SwitchStatementMissingSomeCases
155+
switch (exportType)
156+
{
157+
case ExportType.Html:
158+
LogExporter.ExportHtml(path, exportList);
159+
break;
160+
default:
161+
LogExporter.ExportTxt(path, exportList);
162+
break;
163+
case ExportType.Csv:
164+
LogExporter.ExportCsv(path, exportList);
165+
break;
166+
case ExportType.Excel:
167+
LogExporter.ExportExcel(path, exportList);
168+
break;
169+
}
170+
}
122171
}
123172
}

MemPlus/Classes/LOG/LogExporter.cs

Lines changed: 100 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
24

35
namespace MemPlus.Classes.LOG
46
{
@@ -7,24 +9,120 @@ namespace MemPlus.Classes.LOG
79
/// </summary>
810
internal static class LogExporter
911
{
12+
/// <summary>
13+
/// Export a list of logs in HTML format to the disk
14+
/// </summary>
15+
/// <param name="path">The path where the logs should be stored</param>
16+
/// <param name="logList">The list of Log objects that should be exported</param>
1017
internal static void ExportHtml(string path, List<Log> logList)
1118
{
19+
string exportData = "<html>";
1220

21+
exportData += "<head>";
22+
exportData += "<title>MemPlus - Export</title>";
23+
exportData += "</head>";
24+
25+
exportData += "<body>";
26+
exportData += "<h1>MemPlus - Export (" + DateTime.Now + ")</h1>";
27+
exportData += "<table border=\"1\">";
28+
exportData += "<thead>";
29+
exportData += "<tr><th>Time</th><th>Data</th></tr>";
30+
exportData += "</thead>";
31+
exportData += "<tbody>";
32+
33+
foreach (Log l in logList)
34+
{
35+
exportData += "<tr>";
36+
exportData += "<td>" + l.Time + "</td>";
37+
exportData += "<td>" + l.Data + "</td>";
38+
exportData += "</tr>";
39+
}
40+
41+
exportData += "</tbody>";
42+
exportData += "</table>";
43+
exportData += "</body>";
44+
45+
exportData += "</html>";
46+
47+
Export(path, exportData);
1348
}
1449

50+
/// <summary>
51+
/// Export a list of logs in TEXT format to the disk
52+
/// </summary>
53+
/// <param name="path">The path where the logs should be stored</param>
54+
/// <param name="logList">The list of Log objects that should be exported</param>
1555
internal static void ExportTxt(string path, List<Log> logList)
1656
{
57+
string exportData = "MemPlus - Export (" + DateTime.Now + ")";
58+
exportData += Environment.NewLine;
59+
60+
for (int i = 0; i < logList.Count; i++)
61+
{
62+
exportData += "[" + logList[i].Time + "]\t" + logList[i].Data;
63+
if (i != logList.Count - 1)
64+
{
65+
exportData += Environment.NewLine;
66+
}
67+
}
1768

69+
Export(path, exportData);
1870
}
1971

72+
/// <summary>
73+
/// Export a list of logs in CSV format to the disk
74+
/// </summary>
75+
/// <param name="path">The path where the logs should be stored</param>
76+
/// <param name="logList">The list of Log objects that should be exported</param>
2077
internal static void ExportCsv(string path, List<Log> logList)
2178
{
22-
79+
ExportDelimiter(path, logList, ",");
2380
}
2481

82+
/// <summary>
83+
/// Export a list of logs in Excel format to the disk
84+
/// </summary>
85+
/// <param name="path">The path where the logs should be stored</param>
86+
/// <param name="logList">The list of Log objects that should be exported</param>
2587
internal static void ExportExcel(string path, List<Log> logList)
2688
{
89+
ExportDelimiter(path, logList, ";");
90+
}
91+
92+
/// <summary>
93+
/// Export a list of logs using a delimiter character to disk
94+
/// </summary>
95+
/// <param name="path">The path where the logs should be stored</param>
96+
/// <param name="logList">The list of Log objects that should be exported</param>
97+
/// <param name="delimiter">The delimiter character that should be used</param>
98+
private static void ExportDelimiter(string path, IReadOnlyList<Log> logList, string delimiter)
99+
{
100+
string exportData = "Time" + delimiter + "Data";
101+
exportData += Environment.NewLine;
102+
103+
for (int i = 0; i < logList.Count; i++)
104+
{
105+
exportData += logList[i].Time + delimiter + logList[i].Data;
106+
if (i != logList.Count - 1)
107+
{
108+
exportData += Environment.NewLine;
109+
}
110+
}
27111

112+
Export(path, exportData);
113+
}
114+
115+
/// <summary>
116+
/// Export string data to a specific path
117+
/// </summary>
118+
/// <param name="path">The path where the data should be stored</param>
119+
/// <param name="data">The string data that should be exported</param>
120+
private static void Export(string path, string data)
121+
{
122+
using (StreamWriter sw = new StreamWriter(path))
123+
{
124+
sw.Write(data);
125+
}
28126
}
29127
}
30128

MemPlus/MemPlus.csproj

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
<Compile Include="Classes\LOG\ILogMethods.cs" />
8080
<Compile Include="Classes\LOG\Log.cs" />
8181
<Compile Include="Classes\LOG\LogController.cs" />
82+
<Compile Include="Classes\LOG\LogExporter.cs" />
8283
<Compile Include="Classes\LOG\RamLog.cs" />
8384
<Compile Include="Classes\RAM\RamController.cs" />
8485
<Compile Include="Classes\RAM\RamOptimizer.cs" />
@@ -121,43 +122,43 @@
121122
<Resource Include="ram.ico" />
122123
</ItemGroup>
123124
<ItemGroup>
124-
<Resource Include="Resources\ram.png" />
125+
<Resource Include="Resources\Images\ram.png" />
125126
</ItemGroup>
126127
<ItemGroup>
127-
<Resource Include="Resources\paused.png" />
128+
<Resource Include="Resources\Images\paused.png" />
128129
</ItemGroup>
129130
<ItemGroup>
130-
<Resource Include="Resources\exit.png" />
131+
<Resource Include="Resources\Images\exit.png" />
131132
</ItemGroup>
132133
<ItemGroup>
133-
<Resource Include="Resources\export.png" />
134+
<Resource Include="Resources\Images\export.png" />
134135
</ItemGroup>
135136
<ItemGroup>
136-
<Resource Include="Resources\log.png" />
137+
<Resource Include="Resources\Images\log.png" />
137138
</ItemGroup>
138139
<ItemGroup>
139-
<Resource Include="Resources\settings.png" />
140+
<Resource Include="Resources\Images\settings.png" />
140141
</ItemGroup>
141142
<ItemGroup>
142-
<Resource Include="Resources\monitor.png" />
143+
<Resource Include="Resources\Images\monitor.png" />
143144
</ItemGroup>
144145
<ItemGroup>
145-
<Resource Include="Resources\about.png" />
146+
<Resource Include="Resources\Images\about.png" />
146147
</ItemGroup>
147148
<ItemGroup>
148-
<Resource Include="Resources\donate.png" />
149+
<Resource Include="Resources\Images\donate.png" />
149150
</ItemGroup>
150151
<ItemGroup>
151-
<Resource Include="Resources\help.png" />
152+
<Resource Include="Resources\Images\help.png" />
152153
</ItemGroup>
153154
<ItemGroup>
154-
<Resource Include="Resources\home.png" />
155+
<Resource Include="Resources\Images\home.png" />
155156
</ItemGroup>
156157
<ItemGroup>
157-
<Resource Include="Resources\pdf.png" />
158+
<Resource Include="Resources\Images\pdf.png" />
158159
</ItemGroup>
159160
<ItemGroup>
160-
<Resource Include="Resources\update.png" />
161+
<Resource Include="Resources\Images\update.png" />
161162
</ItemGroup>
162163
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
163164
</Project>

MemPlus/Properties/Resources.resx

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,42 +119,42 @@
119119
</resheader>
120120
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121121
<data name="about" type="System.Resources.ResXFileRef, System.Windows.Forms">
122-
<value>..\Resources\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
122+
<value>..\Resources\Images\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123123
</data>
124124
<data name="donate" type="System.Resources.ResXFileRef, System.Windows.Forms">
125-
<value>..\Resources\donate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
125+
<value>..\Resources\Images\donate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126126
</data>
127127
<data name="exit" type="System.Resources.ResXFileRef, System.Windows.Forms">
128-
<value>..\Resources\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
128+
<value>..\Resources\Images\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
129129
</data>
130130
<data name="export" type="System.Resources.ResXFileRef, System.Windows.Forms">
131-
<value>..\Resources\export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
131+
<value>..\Resources\Images\export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
132132
</data>
133133
<data name="help" type="System.Resources.ResXFileRef, System.Windows.Forms">
134-
<value>..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
134+
<value>..\Resources\Images\help.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
135135
</data>
136136
<data name="home" type="System.Resources.ResXFileRef, System.Windows.Forms">
137-
<value>..\Resources\home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
137+
<value>..\Resources\Images\home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
138138
</data>
139139
<data name="log" type="System.Resources.ResXFileRef, System.Windows.Forms">
140-
<value>..\Resources\log.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
140+
<value>..\Resources\Images\log.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
141141
</data>
142142
<data name="monitor" type="System.Resources.ResXFileRef, System.Windows.Forms">
143-
<value>..\Resources\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
143+
<value>..\Resources\Images\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
144144
</data>
145145
<data name="paused" type="System.Resources.ResXFileRef, System.Windows.Forms">
146-
<value>..\Resources\paused.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
146+
<value>..\Resources\Images\paused.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
147147
</data>
148148
<data name="pdf" type="System.Resources.ResXFileRef, System.Windows.Forms">
149-
<value>..\Resources\pdf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
149+
<value>..\Resources\Images\pdf.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
150150
</data>
151151
<data name="ram" type="System.Resources.ResXFileRef, System.Windows.Forms">
152-
<value>..\Resources\ram.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
152+
<value>..\Resources\Images\ram.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
153153
</data>
154154
<data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
155-
<value>..\Resources\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
155+
<value>..\Resources\Images\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
156156
</data>
157157
<data name="update" type="System.Resources.ResXFileRef, System.Windows.Forms">
158-
<value>..\Resources\update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
158+
<value>..\Resources\Images\update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
159159
</data>
160160
</root>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)