private IClientProxy GetRecipients(DrapoPipeAudienceType recipient) { string connectionId = this._requestReader.GetPipeHeaderConnectionId(); if (string.IsNullOrEmpty(connectionId)) { return(null); } DrapoConnection connection = _connectionManager.Get(_requestReader.GetDomain() ?? string.Empty, connectionId); if (connection == null) { return(null); } if (recipient == DrapoPipeAudienceType.Others) { return(this._hub.Clients.GroupExcept(connection.Domain, new List <string>() { connectionId })); } else if (recipient == DrapoPipeAudienceType.Me) { return(this._hub.Clients.Client(connectionId)); } else if (recipient == DrapoPipeAudienceType.Everyone) { return(this._hub.Clients.Group(connection.Domain)); } return(null); }
public async Task <bool> Send(DrapoPipeMessage message, DrapoPipeAudienceType recipient) { IClientProxy proxy = this.GetRecipients(recipient); if (proxy == null) { return(await Task.FromResult <bool>(false)); } await proxy.SendAsync(this._options.Config.PipeActionNotify, message); return(await Task.FromResult <bool>(true)); }
private IClientProxy GetRecipients(DrapoPipeAudienceType recipient) { if (recipient == DrapoPipeAudienceType.Others) { return(this._hub.Clients.AllExcept(new List <string>() { this._requestHeaderReader.GetPipeHeaderConnectionId() })); } else if (recipient == DrapoPipeAudienceType.Me) { return(this._hub.Clients.Client(this._requestHeaderReader.GetPipeHeaderConnectionId())); } else if (recipient == DrapoPipeAudienceType.Everyone) { return(_hub.Clients.All); } return(null); }