Files
EveryPublish/client/ui/Pages/StatusPage.xaml.cs
T

68 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Threading.Tasks;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using Windows.System;
using EveryPublish.Client.Services;
namespace EveryPublish.Client.Pages;
public sealed partial class StatusPage : Page
{
private ClientContext _ctx = null!;
private DispatcherTimer? _timer;
public StatusPage()
{
InitializeComponent();
_timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(3) };
_timer.Tick += async (s, e) => await RefreshAsync();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
_ctx = (ClientContext)e.Parameter;
_ctx.Core.ReloadLocalJson();
_timer?.Start();
_ = RefreshAsync();
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
_timer?.Stop();
}
private async Task RefreshAsync()
{
_ctx.Core.ReloadLocalJson();
var status = await _ctx.Core.GetStatusAsync();
if (status == null)
{
OnlineText.Text = "核心进程未就绪";
OnlineDot.Fill = new SolidColorBrush(Microsoft.UI.Colors.Gray);
return;
}
ServerText.Text = status.Server;
DeviceText.Text = status.DeviceId > 0 ? "#" + status.DeviceId + "(" + status.Name + ")" : "未配对";
SessionText.Text = status.Session;
if (status.Online)
{
OnlineText.Text = "在线";
OnlineDot.Fill = new SolidColorBrush(Microsoft.UI.Colors.LimeGreen);
}
else
{
OnlineText.Text = status.DeviceId > 0 ? "离线(自动重连中)" : "未配对";
OnlineDot.Fill = new SolidColorBrush(Microsoft.UI.Colors.Orange);
}
}
private async void OpenWeb_Click(object sender, RoutedEventArgs e)
{
var status = await _ctx.Core.GetStatusAsync();
var url = status?.Server ?? "http://127.0.0.1:8090";
await Launcher.LaunchUriAsync(new Uri(url));
}
}