70 lines
2.4 KiB
Plaintext
70 lines
2.4 KiB
Plaintext
@page "/"
|
|
@using Microsoft.Extensions.Caching.Memory
|
|
@using System.Reflection
|
|
@using ErsatzTV.Core.Interfaces.GitHub
|
|
@inject IGitHubApiClient _gitHubApiClient
|
|
@inject IMemoryCache _memoryCache
|
|
|
|
<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="pt-8">
|
|
<MudCard>
|
|
<MudCardContent Class="release-notes mud-typography mud-typography-body1">
|
|
<MarkdownView Content="@_releaseNotes"/>
|
|
</MudCardContent>
|
|
</MudCard>
|
|
<MudText Class="mt-6">Additional release notes are available on <MudLink Href="https://github.com/jasongdove/ErsatzTV/releases">GitHub</MudLink></MudText>
|
|
</MudContainer>
|
|
|
|
@code {
|
|
|
|
private string _releaseNotes;
|
|
|
|
protected override async Task OnParametersSetAsync()
|
|
{
|
|
try
|
|
{
|
|
if (_memoryCache.TryGetValue("Index.ReleaseNotesHtml", out string releaseNotesHtml))
|
|
{
|
|
_releaseNotes = releaseNotesHtml;
|
|
}
|
|
else
|
|
{
|
|
var assembly = Assembly.GetEntryAssembly();
|
|
if (assembly != null)
|
|
{
|
|
string version = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
|
if (version != null)
|
|
{
|
|
Either<BaseError, string> maybeNotes;
|
|
|
|
if (version != "develop")
|
|
{
|
|
string gitHubVersion = version.Split("-").Head() + "-prealpha";
|
|
if (!gitHubVersion.StartsWith("v"))
|
|
{
|
|
gitHubVersion = $"v{gitHubVersion}";
|
|
}
|
|
|
|
maybeNotes = await _gitHubApiClient.GetReleaseNotes(gitHubVersion);
|
|
maybeNotes.IfRight(notes => _releaseNotes = notes);
|
|
}
|
|
else
|
|
{
|
|
maybeNotes = await _gitHubApiClient.GetLatestReleaseNotes();
|
|
maybeNotes.IfRight(notes => _releaseNotes = notes);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (_releaseNotes != null)
|
|
{
|
|
_memoryCache.Set("Index.ReleaseNotesHtml", _releaseNotes);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
// ignore
|
|
}
|
|
}
|
|
|
|
} |