Skip to content

Commit

Permalink
Remove JSON.Net dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
fernandreu committed Aug 3, 2019
1 parent d7d1e29 commit 024b703
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
3 changes: 0 additions & 3 deletions OfficeRibbonXEditor/OfficeRibbonXEditor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,6 @@
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.1.2.10\lib\2.0\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="ScintillaNET, Version=3.6.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll</HintPath>
</Reference>
Expand Down
20 changes: 14 additions & 6 deletions OfficeRibbonXEditor/Services/VersionChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Newtonsoft.Json;
using OfficeRibbonXEditor.Interfaces;

namespace OfficeRibbonXEditor.Services
Expand All @@ -19,6 +18,11 @@ public class VersionChecker : IVersionChecker
try
{
var latestVersion = await this.GetVersionAsync(cancelToken);
if (latestVersion == null)
{
return null;
}

var current = Assembly.GetExecutingAssembly().GetName().Version;
Debug.WriteLine($"Latest version: {latestVersion}; current: {current}");
return latestVersion > current ? latestVersion.ToString() : null;
Expand All @@ -37,11 +41,15 @@ private async Task<Version> GetVersionAsync(CancellationToken cancelToken)
httpClient.DefaultRequestHeaders.Add("Accept", "application/vnd.github.v3+json");
httpClient.DefaultRequestHeaders.Add("User-Agent", "request");
var uri = new Uri(CheckUrl);
var response = await httpClient.GetAsync(uri, cancelToken);
var contentString = await response.Content.ReadAsStringAsync();
var content = JsonConvert.DeserializeObject<dynamic>(contentString);
string tag = content.tag_name;
return new Version(tag.Substring(1));
using (var response = await httpClient.GetAsync(uri, cancelToken))
{
var contentString = await response.Content.ReadAsStringAsync();
// We just need the "tag_name" field from the response. We could deserialize everything with
// JSON.Net and obtain that field, but that adds an extra (mid-size) library just for one
// field. Hence, using RegEx instead, which should do just fine.
var match = Regex.Match(contentString, "\\\"tag_name\\\".*?:.*?\\\"v(.*?)\\\"");
return match.Success ? new Version(match.Groups[1].Value) : null;
}
}
}
}
Expand Down
1 change: 0 additions & 1 deletion OfficeRibbonXEditor/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,4 @@
<package id="JetBrains.Annotations" version="2019.1.1" targetFramework="net461" />
<package id="log4net" version="1.2.10" targetFramework="net461" />
<package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" />
</packages>

0 comments on commit 024b703

Please sign in to comment.