public ConnectorEvent ChannelEntityAdded(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); PublishEntities(channel, connectorEvent, structureEntities); string channelName = _mappingHelper.GetNameForEntity(channel, 100); _epiApi.ImportUpdateCompleted(channelName, ImportUpdateCompletedEventType.EntityAdded, true); return(connectorEvent); }
private void PubilshToEpiserver(ConnectorEvent connectorEvent, XDocument catalogDocument, List <StructureEntity> structureEntitiesToGetResourcesFor, Entity channelEntity) { ConnectorEventHelper.UpdateEvent(connectorEvent, "Done generating catalog.xml. Generating Resource.xml and saving files to disk...", 26); var folderNameTimestampComponent = DateTime.Now.ToString(Constants.PublicationFolderNameTimeComponent); var resourcesBasePath = Path.Combine(_config.ResourcesRootPath, folderNameTimestampComponent); var resourceDocument = _resourceElementFactory.GetResourcesNodeForChannelEntities(structureEntitiesToGetResourcesFor, resourcesBasePath); var resourceDocumentPath = _documentFileHelper.SaveDocument(resourceDocument, resourcesBasePath); var savedCatalogDocument = _documentFileHelper.SaveCatalogDocument(channelEntity, catalogDocument, folderNameTimestampComponent); ConnectorEventHelper.UpdateEvent(connectorEvent, "Done generating/saving Resource.xml, sending Catalog.xml to EPiServer...", 50); _epiApi.ImportCatalog(savedCatalogDocument); ConnectorEventHelper.UpdateEvent(connectorEvent, "Done sending Catalog.xml to EPiServer", 75); _epiApi.NotifyEpiserverPostImport(savedCatalogDocument); ConnectorEventHelper.UpdateEvent(connectorEvent, "Sending Resources to EPiServer...", 76); _epiApi.ImportResources(resourceDocumentPath, resourcesBasePath); ConnectorEventHelper.UpdateEvent(connectorEvent, "Done sending Resources to EPiServer...", 99); _epiApi.NotifyEpiserverPostImport(resourceDocumentPath); var channelName = _mappingHelper.GetNameForEntity(channelEntity, 100); _epiApi.ImportUpdateCompleted(channelName, ImportUpdateCompletedEventType.Publish, true); }