Skip to content

Commit b3df2b8

Browse files
committed
[#5] : disk configuration
1 parent f877120 commit b3df2b8

File tree

14 files changed

+162
-40
lines changed

14 files changed

+162
-40
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
# MachineMonitor
1+
# Machine Monitor
22
[![Build status](https://monbsoft.visualstudio.com/MachineMonitor/_apis/build/status/MachineMonitor-CI)](https://monbsoft.visualstudio.com/MachineMonitor/_build/latest?definitionId=5)
33

44
Machine Monitor is a system monitor to display resources and performances of your machine (CPU, Memory and GPU).
55

6+
![alt text](doc/capture.jpg "Machine Monitor")
67

78
## Credits
89
* [windows-toolkit/WindowsCommunityToolkit](https://github.com/windows-toolkit/WindowsCommunityToolkit), The Windows Community Toolkit is a collection of helper functions, custom controls, and app services.

doc/capture.png

9.8 KB
Loading

src/MachineMonitor/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
<setting name="Transparent" serializeAs="String">
2626
<value>False</value>
2727
</setting>
28+
<setting name="Disk" serializeAs="String">
29+
<value>_Total</value>
30+
</setting>
2831
</Monbsoft.MachineMonitor.Properties.Settings>
2932
<Monbsoft.MachineMonitor.Settings>
3033
<setting name="Network" serializeAs="String">

src/MachineMonitor/Configuration/ConfigurationStore.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
using Monbsoft.MachineMonitor.Properties;
2-
using System;
3-
using System.Collections.Generic;
4-
using System.Linq;
5-
using System.Text;
6-
using System.Threading.Tasks;
72

83
namespace Monbsoft.MachineMonitor.Configuration
94
{
105
public class ConfigurationStore
116
{
7+
public string Disk
8+
{
9+
get
10+
{
11+
return Settings.Default.Disk;
12+
}
13+
set
14+
{
15+
Settings.Default.Disk = value;
16+
Save();
17+
}
18+
}
19+
1220
public string Network
1321
{
1422
get
@@ -40,4 +48,4 @@ private void Save()
4048
Settings.Default.Save();
4149
}
4250
}
43-
}
51+
}

src/MachineMonitor/MachineMonitor.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
</ApplicationDefinition>
7373
<Compile Include="Configuration\ConfigurationStore.cs" />
7474
<Compile Include="Messages\UpdatedConfigurationMessage.cs" />
75+
<Compile Include="Services\DiskService.cs" />
7576
<Compile Include="Services\NetworkService.cs" />
7677
<Compile Include="Properties\Settings.Designer.cs">
7778
<AutoGen>True</AutoGen>

src/MachineMonitor/Messages/UpdatedConfigurationMessage.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ public UpdatedConfigurationMessage(ChangedType type)
1313

1414
public enum ChangedType
1515
{
16-
Network,
17-
Transparent
16+
Disk = 0,
17+
Network = 1,
18+
Transparent = 2
1819
}
1920

2021
public ChangedType Changed { get; set; }

src/MachineMonitor/Properties/Settings.Designer.cs

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/MachineMonitor/Properties/Settings.settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88
<Setting Name="Transparent" Type="System.Boolean" Scope="User">
99
<Value Profile="(Default)">False</Value>
1010
</Setting>
11+
<Setting Name="Disk" Type="System.String" Scope="User">
12+
<Value Profile="(Default)">_Total</Value>
13+
</Setting>
1114
</Settings>
1215
</SettingsFile>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace Monbsoft.MachineMonitor.Services
9+
{
10+
public class DiskService
11+
{
12+
public List<string> GetDisks()
13+
{
14+
var category = new PerformanceCounterCategory("PhysicalDisk");
15+
return category.GetInstanceNames().OrderBy(i => i).ToList();
16+
}
17+
}
18+
}

src/MachineMonitor/ViewModels/ConfigurationViewModel.cs

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,60 @@ public class ConfigurationViewModel : ViewModelBase
1313
{
1414
#region Champs
1515
private readonly ConfigurationStore _configuration;
16-
private readonly NetworkService _networkService;
16+
private string _disk;
1717
private string _network;
1818
private bool _transparent;
1919
#endregion
2020

2121
#region Constructeurs
22-
public ConfigurationViewModel(ConfigurationStore configuration, NetworkService networkService)
22+
public ConfigurationViewModel(
23+
ConfigurationStore configuration,
24+
NetworkService networkService,
25+
DiskService diskService)
2326
{
2427
_configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
25-
_networkService = networkService ?? throw new ArgumentNullException(nameof(networkService));
26-
Networks = _networkService.GetNetworks();
28+
if (networkService == null)
29+
{
30+
throw new ArgumentNullException(nameof(networkService));
31+
}
32+
if (diskService == null)
33+
{
34+
throw new ArgumentNullException(nameof(diskService));
35+
}
36+
37+
Networks = networkService.GetNetworks();
38+
Disks = diskService.GetDisks();
39+
_disk = _configuration.Disk;
2740
_network = _configuration.Network;
2841
_transparent = _configuration.Transparent;
2942
}
3043
#endregion
3144

3245
#region Propriétés
46+
public List<string> Disks
47+
{
48+
get;
49+
private set;
50+
}
3351
public List<string> Networks
3452
{
3553
get;
3654
private set;
3755
}
56+
57+
public string SelectedDisk
58+
{
59+
get
60+
{
61+
return _disk;
62+
}
63+
set
64+
{
65+
Set(ref _disk, value);
66+
Disk_Changed();
67+
}
68+
}
69+
3870
public string SelectedNetwork
3971
{
4072
get { return _network; }
@@ -62,7 +94,11 @@ public bool Transparent
6294
private static void SendMessage(ChangedType type)
6395
{
6496
Messenger.Default.Send<UpdatedConfigurationMessage>(new UpdatedConfigurationMessage(type));
65-
97+
}
98+
private void Disk_Changed()
99+
{
100+
_configuration.Disk = SelectedDisk;
101+
SendMessage(ChangedType.Disk);
66102
}
67103
private void Network_Changed()
68104
{
@@ -77,4 +113,4 @@ private void Transparent_Changed()
77113
}
78114
#endregion
79115
}
80-
}
116+
}

0 commit comments

Comments
 (0)