Remotely/Server/Services/LoaderService.cs
2024-03-11 05:18:27 -07:00

26 lines
794 B
C#

using Immense.RemoteControl.Shared.Primitives;
using Immense.SimpleMessenger;
using Remotely.Server.Hubs;
using Remotely.Server.Models.Messages;
namespace Remotely.Server.Services;
public interface ILoaderService
{
Task<IDisposable> ShowLoader(string statusMessage);
void HideLoader();
}
public class LoaderService(IMessenger _messenger, ICircuitConnection _circuitConnection) : ILoaderService
{
public async Task<IDisposable> ShowLoader(string statusMessage)
{
await _messenger.Send(new ShowLoaderMessage(true, statusMessage), _circuitConnection.ConnectionId);
return new CallbackDisposable(HideLoader);
}
public void HideLoader()
{
_messenger.Send(new ShowLoaderMessage(false, string.Empty), _circuitConnection.ConnectionId);
}
}