Skip to content

Commit b9a59f5

Browse files
committed
Check for Updates on Startup
1 parent 5f03523 commit b9a59f5

4 files changed

Lines changed: 40 additions & 5 deletions

File tree

ScoutsEncoder/MainWindow.xaml.cs

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
using MaterialDesignThemes.Wpf;
22
using Microsoft.Win32;
3+
using Octokit;
34
using System;
45
using System.Collections.Generic;
56
using System.Diagnostics;
67
using System.IO;
78
using System.Linq;
9+
using System.Reflection;
810
using System.Windows;
911
using System.Windows.Controls;
1012
using System.Windows.Media;
1113
using System.Xml.Serialization;
14+
using Application = System.Windows.Application;
15+
using FileMode = System.IO.FileMode;
1216

1317
namespace ScoutsEncoder
1418
{
@@ -60,6 +64,10 @@ public MainWindow()
6064
{
6165
InitializeComponent();
6266

67+
// Initialize messageQueue and Assign it to Snackbar's MessageQueue
68+
var messageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(2));
69+
Snackbar.MessageQueue = messageQueue;
70+
6371
// Initialize CiphersComboBox
6472
foreach (var c in _ciphers)
6573
{
@@ -74,12 +82,35 @@ public MainWindow()
7482
_lettersTextBoxes.AddRange(children.OfType<TextBox>());
7583
}
7684

77-
// Initialize messageQueue and Assign it to Snackbar's MessageQueue
78-
var messageQueue = new SnackbarMessageQueue(TimeSpan.FromMilliseconds(1800));
79-
Snackbar.MessageQueue = messageQueue;
85+
// Check for updates
86+
CheckForUpdates();
8087
}
8188

8289

90+
private void CheckForUpdates()
91+
{
92+
Release latest;
93+
94+
try
95+
{
96+
var client = new GitHubClient(new ProductHeaderValue(RepoName));
97+
latest = client.Repository.Release.GetLatest(OwnerName, RepoName).Result;
98+
}
99+
catch (Exception)
100+
{
101+
return;
102+
}
103+
104+
var currentVersion = Assembly.GetEntryAssembly()?.GetName().Version;
105+
var latestVersion = new Version(latest.TagName.Substring(1) + ".0");
106+
var isUpToDate = currentVersion.Equals(latestVersion);
107+
108+
if (isUpToDate) return;
109+
var content = $"ScoutsEncoder {latest.TagName} is Now Available!";
110+
void Action() => Process.Start(latest.Assets[0].BrowserDownloadUrl);
111+
Snackbar.MessageQueue.Enqueue(content, "Download", Action);
112+
}
113+
83114
//// Dialog Event Handlers ////
84115

85116
private Cipher GetNewCipher()

ScoutsEncoder/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
// You can specify all the values or you can default the Build and Revision Numbers
5252
// by using the '*' as shown below:
5353
// [assembly: AssemblyVersion("1.0.*")]
54-
[assembly: AssemblyVersion("2.1.0.0")]
55-
[assembly: AssemblyFileVersion("2.1.0.0")]
54+
[assembly: AssemblyVersion("2.2.0.0")]
55+
[assembly: AssemblyFileVersion("2.2.0.0")]

ScoutsEncoder/ScoutsEncoder.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
<Reference Include="MaterialDesignThemes.Wpf, Version=2.5.0.1205, Culture=neutral, processorArchitecture=MSIL">
5353
<HintPath>..\packages\MaterialDesignThemes.2.5.0.1205\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
5454
</Reference>
55+
<Reference Include="Octokit, Version=0.32.0.0, Culture=neutral, processorArchitecture=MSIL">
56+
<HintPath>..\packages\Octokit.0.32.0\lib\net45\Octokit.dll</HintPath>
57+
</Reference>
5558
<Reference Include="System" />
5659
<Reference Include="System.Data" />
5760
<Reference Include="System.Drawing" />

ScoutsEncoder/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
<package id="Fody" version="3.3.5" targetFramework="net461" developmentDependency="true" />
55
<package id="MaterialDesignColors" version="1.1.3" targetFramework="net461" />
66
<package id="MaterialDesignThemes" version="2.5.0.1205" targetFramework="net461" />
7+
<package id="Octokit" version="0.32.0" targetFramework="net461" />
78
</packages>

0 commit comments

Comments
 (0)