Files
i2p 773d05f8f1
Pulsar .NET 9.0 Windows Release / build (push) Waiting to run
Mirror to Codeberg and Gitea / mirror (push) Waiting to run
initial commit
2026-08-27 10:57:58 -06:00

76 lines
2.5 KiB
C#

using Pulsar.Common.Messages;
using Pulsar.Common.Messages.Administration.SystemInfo;
using Pulsar.Common.Messages.Other;
using Pulsar.Common.Networking;
using Pulsar.Server.Networking;
using System;
using System.Collections.Generic;
namespace Pulsar.Server.Messages
{
/// <summary>
/// Handles messages for the interaction with the remote system information.
/// </summary>
public class SystemInformationHandler : MessageProcessorBase<List<Tuple<string, string>>>
{
/// <summary>
/// The client which is associated with this system information handler.
/// </summary>
private readonly Client _client;
/// <summary>
/// Initializes a new instance of the <see cref="SystemInformationHandler"/> class using the given client.
/// </summary>
/// <param name="client">The associated client.</param>
public SystemInformationHandler(Client client) : base(true)
{
_client = client;
}
/// <inheritdoc />
public override bool CanExecute(IMessage message) => message is GetSystemInfoResponse;
/// <inheritdoc />
public override bool CanExecuteFrom(ISender client) => _client.Equals(client);
/// <inheritdoc />
public override void Execute(ISender sender, IMessage message)
{
switch (message)
{
case GetSystemInfoResponse info:
Execute(sender, info);
break;
}
}
/// <summary>
/// Refreshes the system information of the client.
/// </summary>
public void RefreshSystemInformation()
{
_client.Send(new GetSystemInfo());
}
private void Execute(ISender client, GetSystemInfoResponse message)
{
OnReport(message.SystemInfos);
// TODO: Refactor tooltip
//if (Settings.ShowToolTip)
//{
// var builder = new StringBuilder();
// for (int i = 0; i < packet.SystemInfos.Length; i += 2)
// {
// if (packet.SystemInfos[i] != null && packet.SystemInfos[i + 1] != null)
// {
// builder.AppendFormat("{0}: {1}\r\n", packet.SystemInfos[i], packet.SystemInfos[i + 1]);
// }
// }
// FrmMain.Instance.SetToolTipText(client, builder.ToString());
//}
}
}
}