RobotNet/RobotNet.ScriptManager/Hubs/VariablesHub.cs
2025-10-15 15:15:53 +07:00

79 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
using RobotNet.ScriptManager.Services;
namespace RobotNet.ScriptManager.Hubs;
[Authorize]
public class VariablesHub(ScriptGlobalsManager globalsManager) : Hub
{
public string GetString(string name)
{
if (globalsManager.GetVariableType(name) == typeof(string) && globalsManager.Globals.TryGetValue(name, out var value) && value is string strValue)
{
return strValue;
}
return string.Empty;
}
public int GetInt(string name)
{
if (globalsManager.GetVariableType(name) == typeof(int) && globalsManager.Globals.TryGetValue(name, out var value) && value is int intValue)
{
return intValue;
}
return 0;
}
public bool GetBool(string name)
{
if (globalsManager.GetVariableType(name) == typeof(bool) && globalsManager.Globals.TryGetValue(name, out var value) && value is bool boolValue)
{
return boolValue;
}
return false;
}
public double GetDouble(string name)
{
if (globalsManager.GetVariableType(name) == typeof(double) && globalsManager.Globals.TryGetValue(name, out var value) && value is double doubleValue)
{
return doubleValue;
}
return 0.0;
}
public void SetString(string name, string value)
{
if (globalsManager.GetVariableType(name) == typeof(double) && globalsManager.Globals.ContainsKey(name))
{
globalsManager.Globals[name] = value;
}
}
public void SetInt(string name, int value)
{
if (globalsManager.GetVariableType(name) == typeof(int) && globalsManager.Globals.ContainsKey(name))
{
globalsManager.Globals[name] = value;
}
}
public void SetBool(string name, bool value)
{
if (globalsManager.GetVariableType(name) == typeof(bool) && globalsManager.Globals.ContainsKey(name))
{
globalsManager.Globals[name] = value;
}
}
public void SetDouble(string name, double value)
{
if (globalsManager.GetVariableType(name) == typeof(double) && globalsManager.Globals.ContainsKey(name))
{
globalsManager.Globals[name] = value;
}
}
}