public void CreateClientEvent(PublishEventRequest publishEventRequest) { if (publishEventRequest is null) { throw new ArgumentNullException(nameof(publishEventRequest)); } _rabbitMqClient.PushToExchange(Utils.Common.Constants.EventsExchangeName, publishEventRequest); }
public async Task ProcessEvent(PublishEventRequest publishEventRequest) { if (publishEventRequest is null) { throw new System.ArgumentNullException(nameof(publishEventRequest)); } await _eventsLogic.PublishEvent(publishEventRequest); }
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); } } }
// 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); }
private static ClientEvent GetClientEventFromPublishEventRequest(PublishEventRequest publishEventRequest) => new ClientEvent { EventData = publishEventRequest.EventData, EventType = publishEventRequest.EventType };