public async Task <IActionResult> Republish([FromBody] RepublishRequest model) { var arId = AggregateUrn.Parse(model.Id, Urn.Uber); if (model.IsPublicEvent) { IPublicEvent @event = await _eventExplorer.FindPublicEventAsync(arId, model.CommitRevision, model.EventPosition); if (@event is null) { return(BadRequest("Event not found")); } Dictionary <string, string> headers = new Dictionary <string, string>() { { MessageHeader.AggregateRootId, arId.ToBase64() } }; publicPublisher.Publish(@event, headers); } else { IEvent @event = await _eventExplorer.FindEventAsync(arId, model.CommitRevision, model.EventPosition); if (@event is null) { return(BadRequest("Event not found")); } string recipientHandlers = ConcatRecipientHandlers(model.RecipientHandlers); Dictionary <string, string> headers = new Dictionary <string, string>() { { MessageHeader.AggregateRootId, arId.ToBase64() }, { MessageHeader.AggregateRootRevision, model.CommitRevision.ToString() }, { MessageHeader.AggregateRootEventPosition, model.EventPosition.ToString() }, { MessageHeader.RecipientHandlers, string.Join(',', recipientHandlers) } }; publisher.Publish(@event, headers); } return(new OkObjectResult(new ResponseResult())); }
public void RemovePublicEvent(IPublicEvent eventItem) { _publicEvents?.Remove(eventItem); }
public void AddPublicEvent(IPublicEvent eventItem) { _publicEvents = _publicEvents ?? new List <IPublicEvent>(); _publicEvents.Add(eventItem); }