Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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);
 }