bloxstrap/Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs
pizzaboxer 26b7cbdc67
Refactoring of activity tracker handling
this will either go really well or horribly wrong
2024-09-03 18:12:10 +01:00

40 lines
1.3 KiB
C#

using System.Windows;
using System.Windows.Input;
using Bloxstrap.Integrations;
using CommunityToolkit.Mvvm.Input;
namespace Bloxstrap.UI.ViewModels.ContextMenu
{
internal class ServerInformationViewModel : NotifyPropertyChangedViewModel
{
private readonly ActivityWatcher _activityWatcher;
public string InstanceId => _activityWatcher.Data.JobId;
public string ServerType => _activityWatcher.Data.ServerType.ToTranslatedString();
public string ServerLocation { get; private set; } = Strings.ContextMenu_ServerInformation_Loading;
public ICommand CopyInstanceIdCommand => new RelayCommand(CopyInstanceId);
public ICommand CloseWindowCommand => new RelayCommand(RequestClose);
public EventHandler? RequestCloseEvent;
public ServerInformationViewModel(Watcher watcher)
{
_activityWatcher = watcher.ActivityWatcher!;
Task.Run(async () =>
{
ServerLocation = await _activityWatcher.GetServerLocation();
OnPropertyChanged(nameof(ServerLocation));
});
}
private void CopyInstanceId() => Clipboard.SetDataObject(InstanceId);
private void RequestClose() => RequestCloseEvent?.Invoke(this, EventArgs.Empty);
}
}