123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- namespace EEMSServerCore.HubSender;
- public class ClientCaller : IClientProvider
- {
- #region Internal Send
- private Task<bool> SendAsync(Guid guid, string name)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- private Task<bool> SendAsync<T>(Guid guid, string name, T para)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name, para);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- private Task<bool> SendAsync<T1, T2>(Guid guid, string name, T1 para1, T2 para2)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (!ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name, para1, para2);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- private Task<bool> SendAsync<T1, T2, T3>(Guid guid, string name, T1 para1, T2 para2, T3 para3)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name, para1, para2, para3);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- private Task<bool> SendAsync<T1, T2, T3, T4>(Guid guid, string name, T1 para1, T2 para2, T3 para3, T4 para4)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name, para1, para2, para3, para4);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- private Task<bool> SendAsync<T1, T2, T3, T4, T5>(Guid guid, string name, T1 para1, T2 para2, T3 para3, T4 para4, T5 para5)
- {
- if (string.IsNullOrEmpty(name))
- return Task.FromResult(false);
- if (!ClientManager.DeviceClients.TryGetValue(guid, out ISingleClientProxy? client) || client is null)
- return Task.FromResult(false);
- try
- {
- client.SendAsync(name, para1, para2, para3, para4, para5);
- }
- catch
- {
- return Task.FromResult(false);
- }
- return Task.FromResult(true);
- }
- #endregion
- Task<bool> IClientProvider.RequestFile(Guid guid, FileType fileType)
- {
- return this.SendAsync(guid, "RequestFile", guid, fileType);
- }
- Task<bool> IClientProvider.PushFile(Guid guid, FileType fileType, byte[] buffer, int current, int total)
- {
- return this.SendAsync(guid, "PushFile", guid, fileType, buffer, current, total);
- }
- }
|