Skip to content

Commit

Permalink
(feat): track work network instead of home network
Browse files Browse the repository at this point in the history
The work network is smaller and never changes. Home networks are many and change often. For example, cafe's, libraries and houses. Whereas, work networks usually have the same name and change rarely.

This may not be true for everyone. It is for me.
  • Loading branch information
dylan-george-field committed Aug 6, 2023
1 parent a1e6864 commit 6f4b4ec
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 27 deletions.
2 changes: 1 addition & 1 deletion src/wfh-log-wpf/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public App()
services.AddSingleton<HourlyTimer>();
services.AddSingleton<LogReader>();
services.AddSingleton<LogWriter>();
services.AddSingleton<HomeNetworkSettings>();
services.AddSingleton<WorkNetworkSettings>();
}).Build();

using (var serviceScope = _host.Services.CreateScope())
Expand Down
4 changes: 2 additions & 2 deletions src/wfh-log-wpf/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
<Border Grid.Row="1" Background="#2f5cb6" BorderThickness="1" BorderBrush="SteelBlue"/>
<Border Grid.Row="2" Background="#2f5cb6" BorderThickness="0" BorderBrush="SteelBlue"/>
<StackPanel Orientation="Horizontal" Grid.Row="0" Margin="10,10,10,10">
<TextBox Width="290" HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="HomeNetworkTextbox"
<TextBox Width="290" HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="WorkNetworkTextbox"
ToolTip="A semicolon separated list of SSIDs"/>
<Button Name="SetHomeNetwork" Height="20" Width="125" Margin="5,0,0,0" Content="Set Home Network" Click="SetHomeNetworkButton_Click" />
<Button Name="SetWorkNetwork" Height="20" Width="125" Margin="5,0,0,0" Content="Set Work Network(s)" Click="SetWorkNetworkButton_Click" />
</StackPanel>
<StackPanel Grid.Row="1" Margin="10,0,10,0" VerticalAlignment="Center" Height="100">
<StackPanel Margin="5,0,5,5">
Expand Down
30 changes: 14 additions & 16 deletions src/wfh-log-wpf/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ namespace wfh_log_wpf
public partial class MainWindow : Window
{
private readonly LogWriter _logger;
private readonly HomeNetworkSettings _settings;
private readonly WorkNetworkSettings _settings;

public MainWindow(LogWriter logger, HourlyTimer timer, HomeNetworkSettings settings)
public MainWindow(LogWriter logger, HourlyTimer timer, WorkNetworkSettings settings)
{
_logger = logger;
_settings = settings;
Expand All @@ -38,13 +38,13 @@ public MainWindow(LogWriter logger, HourlyTimer timer, HomeNetworkSettings setti
var productVersion = FileVersionInfo.GetVersionInfo(appDirectory).ProductVersion;
VersionTextBox.Text = productVersion;

HomeNetworkTextbox.Text = settings.GetHomeNetworkString();
WorkNetworkTextbox.Text = settings.GetHomeNetworkString();

var currentNetwork = NetworkHelper.GetConnectedNetworkSsid();

ConnectedNetworkSsid.Text = currentNetwork;

if (_settings.HomeNetworks.Contains(currentNetwork.ToString()))
if (_settings.WorkNetworks.Contains(currentNetwork.ToString()))
{
var message = "You are working from home";
WorkFromHomeStatus.Text = message;
Expand All @@ -66,7 +66,7 @@ private void HandleTimer(object? source, ElapsedEventArgs e)

Dispatcher.Invoke(() => ConnectedNetworkSsid.Text = currentNetwork.ToString());

if (_settings.HomeNetworks.Contains(currentNetwork.ToString()))
if (_settings.WorkNetworks.Contains(currentNetwork.ToString()))
{
var message = "You are working from home";
Dispatcher.Invoke(() => WorkFromHomeStatus.Text = message);
Expand All @@ -82,11 +82,9 @@ private void HandleTimer(object? source, ElapsedEventArgs e)

}

private void SetHomeNetworkButton_Click(object? source, RoutedEventArgs args)
private void SetWorkNetworkButton_Click(object? source, RoutedEventArgs args)
{
// move to home network settings
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
+ "\\wfh-log"; // duplicate with base log
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\wfh-log";
string filename = "settings.txt";

if (!File.Exists(path + "\\" + filename))
Expand All @@ -96,24 +94,24 @@ private void SetHomeNetworkButton_Click(object? source, RoutedEventArgs args)
filestream.Dispose();
}

File.WriteAllText(path + "\\" + filename, HomeNetworkTextbox.Text);
_settings.SetHomeNetworks(HomeNetworkTextbox.Text);
File.WriteAllText(path + "\\" + filename, WorkNetworkTextbox.Text);
_settings.SetWorkNetworks(WorkNetworkTextbox.Text);
// re-run
var currentNetwork = NetworkHelper.GetConnectedNetworkSsid();

Dispatcher.Invoke(() => ConnectedNetworkSsid.Text = currentNetwork);

if (_settings.HomeNetworks.Contains(currentNetwork.ToString()))
if (_settings.WorkNetworks.Contains(currentNetwork.ToString()))
{
var message = "You are working from home";
var message = "You're at the office 🏢";
Dispatcher.Invoke(() => WorkFromHomeStatus.Text = message);
_logger.Log(isWorkingFromHome: true, currentNetwork);
_logger.Log(isWorkingFromHome: false, currentNetwork);
}
else
{
var message = "You are not working from home";
var message = "You're working from home 🏡";
Dispatcher.Invoke(() => WorkFromHomeStatus.Text = message);
_logger.Log(isWorkingFromHome: false, currentNetwork);
_logger.Log(isWorkingFromHome: true, currentNetwork);
}
}

Expand Down
21 changes: 14 additions & 7 deletions src/wfh-log-wpf/Settings/HomeNetworkSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Media;

namespace wfh_log_wpf.Settings
{
public class HomeNetworkSettings
public class WorkNetworkSettings
{
public List<string> HomeNetworks = new();
public List<string> WorkNetworks = new();
internal readonly string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
+ "\\wfh-log"; // duplicate with base log
private const string filename = "settings.txt";

public HomeNetworkSettings()
public WorkNetworkSettings()
{
ReadHomeNetworksFromFile();
}
Expand All @@ -28,24 +29,30 @@ public void ReadHomeNetworksFromFile()

var file = File.ReadAllText(path + "\\" + filename);

SetHomeNetworks(file);
SetWorkNetworks(file);
}

public void SetHomeNetworks(string list)
public void SetWorkNetworks(string list)
{
Clear();
var networks = list.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);

foreach (var item in networks)
{
HomeNetworks.Add(item);
WorkNetworks.Add(item);
}
}

private void Clear()
{
WorkNetworks.Clear();
}

public string GetHomeNetworkString()
{
var stringBuilder = new StringBuilder();

foreach(var network in HomeNetworks)
foreach(var network in WorkNetworks)
{
stringBuilder.Append(network);
stringBuilder.Append(';');
Expand Down
2 changes: 1 addition & 1 deletion src/wfh-log-wpf/wfh-log.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<RepositoryUrl>https://github.com/dylan-george-field/work-from-home-logger</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>taxation;ato;wfh;tax;productivity-tools;wifi-network;wpf-application</PackageTags>
<AssemblyVersion>0.5.2</AssemblyVersion>
<AssemblyVersion>0.6.0</AssemblyVersion>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit 6f4b4ec

Please sign in to comment.