Exemplo n.º 1
0
        public void CreateClientEvent(PublishEventRequest publishEventRequest)
        {
            if (publishEventRequest is null)
            {
                throw new ArgumentNullException(nameof(publishEventRequest));
            }

            _rabbitMqClient.PushToExchange(Utils.Common.Constants.EventsExchangeName, publishEventRequest);
        }
Exemplo n.º 2
0
        public async Task ProcessEvent(PublishEventRequest publishEventRequest)
        {
            if (publishEventRequest is null)
            {
                throw new System.ArgumentNullException(nameof(publishEventRequest));
            }

            await _eventsLogic.PublishEvent(publishEventRequest);
        }
Exemplo n.º 3
0
        public void PublishEvents(PublishEventRequest publishEventRequest, IEnumerable <UserQueue> userQueues)
        {
            var allTasks = new List <Task>();

            using (var channel = _rabbitMqClient.GetChannel())
            {
                var clientEvent = GetClientEventFromPublishEventRequest(publishEventRequest);
                foreach (var userQueue in userQueues)
                {
                    _rabbitMqClient.PushToQueue(userQueue.QueueName, clientEvent);
                }
            }
        }
Exemplo n.º 4
0
        // Publishes events to clients
        public async Task PublishEvent(PublishEventRequest publishEventRequest)
        {
            if (publishEventRequest is null)
            {
                throw new ArgumentNullException(nameof(publishEventRequest));
            }

            var userQueues = await _userQueueRepository.GetAllUserQueues(publishEventRequest.UserId);

            if (userQueues != null && userQueues.Any())
            {
                _eventsPublisher.PublishEvents(publishEventRequest, userQueues);
            }
        }
        /// <summary>
        /// (已废弃)用于Event事件投递
        /// </summary>
        /// <param name="req"><see cref="PublishEventRequest"/></param>
        /// <returns><see cref="PublishEventResponse"/></returns>
        public PublishEventResponse PublishEventSync(PublishEventRequest req)
        {
            JsonResponseModel <PublishEventResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "PublishEvent");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <PublishEventResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
Exemplo n.º 6
0
 private static ClientEvent GetClientEventFromPublishEventRequest(PublishEventRequest publishEventRequest) => new ClientEvent
 {
     EventData = publishEventRequest.EventData,
     EventType = publishEventRequest.EventType
 };