using System;
using System.Threading;
using System.Threading.Tasks;
using Wino.Core.Domain.Interfaces;
namespace Wino.Core.WinUI.Services;
///
/// Empty implementation of IWinoServerConnectionManager that returns default values.
/// This replaces the old AppServiceConnection-based implementation.
///
public class EmptyWinoServerConnectionManager : IWinoServerConnectionManager
{
public event EventHandler StatusChanged { add { } remove { } }
public WinoServerConnectionStatus Status => WinoServerConnectionStatus.Connected;
public TaskCompletionSource ConnectingHandle { get; } = new TaskCompletionSource();
public EmptyWinoServerConnectionManager()
{
ConnectingHandle.SetResult(true);
}
public Task ConnectAsync()
{
return Task.FromResult(true);
}
public Task QueueRequestAsync(IRequestBase request, Guid accountId)
{
return Task.CompletedTask;
}
public Task> GetResponseAsync(TRequestType clientMessage, CancellationToken cancellationToken = default)
where TRequestType : IClientMessage
{
var response = WinoServerResponse.CreateSuccessResponse(default(TResponse));
return Task.FromResult(response);
}
}
///
/// Generic empty implementation for typed connection managers.
///
/// The connection type (not used in this implementation)
public class EmptyWinoServerConnectionManager : EmptyWinoServerConnectionManager, IWinoServerConnectionManager
{
public TAppServiceConnection Connection { get; set; }
public Task InitializeAsync()
{
return Task.CompletedTask;
}
}