public async Task <ConnectorEvent> ChannelEntityAddedAsync(Entity channel, int entityId) { ConnectorEvent connectorEvent = ConnectorEventHelper.InitiateEvent(_config, ConnectorEventType.ChannelEntityAdded, $"Received entity added for entity {entityId} in channel {channel.DisplayName}", 0); var structureEntities = new List <StructureEntity>(); List <StructureEntity> addedStructureEntities = _entityService.GetStructureEntitiesForEntityInChannel(_config.ChannelId, entityId); foreach (StructureEntity addedEntity in addedStructureEntities) { StructureEntity parentEntity = _entityService.GetParentStructureEntity(_config.ChannelId, addedEntity.ParentId, addedEntity.EntityId, addedStructureEntities); structureEntities.Add(parentEntity); } structureEntities.AddRange(addedStructureEntities); string targetEntityPath = _entityService.GetTargetEntityPath(entityId, addedStructureEntities); List <StructureEntity> childLinks = _entityService.GetChildrenEntitiesInChannel(entityId, targetEntityPath); foreach (StructureEntity linkStructureEntity in childLinks) { List <StructureEntity> childLinkedEntities = _entityService.GetChildrenEntitiesInChannel(linkStructureEntity.EntityId, linkStructureEntity.Path); structureEntities.AddRange(childLinkedEntities); } structureEntities.AddRange(childLinks); await PublishEntitiesAsync(channel, connectorEvent, structureEntities); string channelName = _mappingHelper.GetNameForEntity(channel, 100); await _epiApi.ImportUpdateCompletedAsync(channelName, ImportUpdateCompletedEventType.EntityAdded, true); return(connectorEvent); }