private void ImportNodeInfo(NodeInfo nodeInfo, ScopedElementCollection additionalElements, int parentId, IList nodeIndexNameArrayList) { nodeInfo.NodeName = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.NodeName); nodeInfo.NodeType = ENodeTypeUtils.GetEnumType(AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.NodeType)); nodeInfo.PublishmentSystemId = _publishmentSystemInfo.PublishmentSystemId; var contentModelId = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.ContentModelId); if (!string.IsNullOrEmpty(contentModelId)) { nodeInfo.ContentModelId = contentModelId; } nodeInfo.ParentId = parentId; var nodeIndexName = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.NodeIndexName); if (!string.IsNullOrEmpty(nodeIndexName) && nodeIndexNameArrayList.IndexOf(nodeIndexName) == -1) { nodeInfo.NodeIndexName = nodeIndexName; nodeIndexNameArrayList.Add(nodeIndexName); } nodeInfo.NodeGroupNameCollection = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.NodeGroupNameCollection); nodeInfo.AddDate = DateTime.Now; nodeInfo.ImageUrl = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.ImageUrl); nodeInfo.Content = AtomUtility.Decrypt(AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.Content)); nodeInfo.FilePath = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.FilePath); nodeInfo.ChannelFilePathRule = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.ChannelFilePathRule); nodeInfo.ContentFilePathRule = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.ContentFilePathRule); nodeInfo.LinkUrl = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.LinkUrl); nodeInfo.LinkType = ELinkTypeUtils.GetEnumType(AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.LinkType)); var channelTemplateName = AtomUtility.GetDcElementContent(additionalElements, ChannelTemplateName); if (!string.IsNullOrEmpty(channelTemplateName)) { nodeInfo.ChannelTemplateId = TemplateManager.GetTemplateIDByTemplateName(_publishmentSystemInfo.PublishmentSystemId, ETemplateType.ChannelTemplate, channelTemplateName); } var contentTemplateName = AtomUtility.GetDcElementContent(additionalElements, ContentTemplateName); if (!string.IsNullOrEmpty(contentTemplateName)) { nodeInfo.ContentTemplateId = TemplateManager.GetTemplateIDByTemplateName(_publishmentSystemInfo.PublishmentSystemId, ETemplateType.ContentTemplate, contentTemplateName); } nodeInfo.Keywords = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.Keywords); nodeInfo.Description = AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.Description); nodeInfo.SetExtendValues(AtomUtility.GetDcElementContent(additionalElements, NodeAttribute.ExtendValues)); }
private AtomFeed ExportNodeInfo(NodeInfo nodeInfo) { var feed = AtomUtility.GetEmptyFeed(); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.NodeId, nodeInfo.NodeId.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.NodeName, nodeInfo.NodeName); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.NodeType, ENodeTypeUtils.GetValue(nodeInfo.NodeType)); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.PublishmentSystemId, nodeInfo.PublishmentSystemId.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ContentModelId, nodeInfo.ContentModelId); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ParentId, nodeInfo.ParentId.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ParentsPath, nodeInfo.ParentsPath); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ParentsCount, nodeInfo.ParentsCount.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ChildrenCount, nodeInfo.ChildrenCount.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.IsLastNode, nodeInfo.IsLastNode.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.NodeIndexName, nodeInfo.NodeIndexName); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.NodeGroupNameCollection, nodeInfo.NodeGroupNameCollection); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.Taxis, nodeInfo.Taxis.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.AddDate, nodeInfo.AddDate.ToLongDateString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ImageUrl, nodeInfo.ImageUrl); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.Content, AtomUtility.Encrypt(nodeInfo.Content)); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ContentNum, nodeInfo.ContentNum.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.FilePath, nodeInfo.FilePath); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ChannelFilePathRule, nodeInfo.ChannelFilePathRule); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ContentFilePathRule, nodeInfo.ContentFilePathRule); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.LinkUrl, nodeInfo.LinkUrl); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.LinkType, ELinkTypeUtils.GetValue(nodeInfo.LinkType)); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ChannelTemplateId, nodeInfo.ChannelTemplateId.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ContentTemplateId, nodeInfo.ContentTemplateId.ToString()); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.Keywords, nodeInfo.Keywords); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.Description, nodeInfo.Description); AtomUtility.AddDcElement(feed.AdditionalElements, NodeAttribute.ExtendValues, nodeInfo.Additional.ToString()); if (nodeInfo.ChannelTemplateId != 0) { var channelTemplateName = TemplateManager.GetTemplateName(nodeInfo.PublishmentSystemId, nodeInfo.ChannelTemplateId); AtomUtility.AddDcElement(feed.AdditionalElements, ChannelTemplateName, channelTemplateName); } if (nodeInfo.ContentTemplateId != 0) { var contentTemplateName = TemplateManager.GetTemplateName(nodeInfo.PublishmentSystemId, nodeInfo.ContentTemplateId); AtomUtility.AddDcElement(feed.AdditionalElements, ContentTemplateName, contentTemplateName); } return(feed); }
public int ImportChannelsAndContents(string filePath, bool isImportContents, bool isOverride, int theParentId) { var psChildCount = DataProvider.NodeDao.GetNodeCount(_publishmentSystemInfo.PublishmentSystemId); var nodeIndexNameList = DataProvider.NodeDao.GetNodeIndexNameList(_publishmentSystemInfo.PublishmentSystemId); if (!FileUtils.IsFileExists(filePath)) { return(0); } var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(filePath)); var firstIndex = filePath.LastIndexOf(PathUtils.SeparatorChar) + 1; var lastIndex = filePath.LastIndexOf(".", StringComparison.Ordinal); var orderString = filePath.Substring(firstIndex, lastIndex - firstIndex); var idx = orderString.IndexOf("_", StringComparison.Ordinal); if (idx != -1) { var secondOrder = TranslateUtils.ToInt(orderString.Split('_')[1]); secondOrder = secondOrder + psChildCount; orderString = orderString.Substring(idx + 1); idx = orderString.IndexOf("_", StringComparison.Ordinal); if (idx != -1) { orderString = orderString.Substring(idx); orderString = "1_" + secondOrder + orderString; } else { orderString = "1_" + secondOrder; } orderString = orderString.Substring(0, orderString.LastIndexOf("_", StringComparison.Ordinal)); } var parentId = DataProvider.NodeDao.GetNodeId(_publishmentSystemInfo.PublishmentSystemId, orderString); if (theParentId != 0) { parentId = theParentId; } var nodeType = ENodeTypeUtils.GetEnumType(AtomUtility.GetDcElementContent(feed.AdditionalElements, NodeAttribute.NodeType)); int nodeId; if (nodeType == ENodeType.BackgroundPublishNode) { nodeId = _publishmentSystemInfo.PublishmentSystemId; var nodeInfo = NodeManager.GetNodeInfo(_publishmentSystemInfo.PublishmentSystemId, _publishmentSystemInfo.PublishmentSystemId); ImportNodeInfo(nodeInfo, feed.AdditionalElements, parentId, nodeIndexNameList); DataProvider.NodeDao.UpdateNodeInfo(nodeInfo); if (isImportContents) { ImportContents(feed.Entries, nodeInfo, 0, isOverride); } } else { var nodeInfo = new NodeInfo(); ImportNodeInfo(nodeInfo, feed.AdditionalElements, parentId, nodeIndexNameList); if (string.IsNullOrEmpty(nodeInfo.NodeName)) { return(0); } var isUpdate = false; var theSameNameNodeId = 0; if (isOverride) { theSameNameNodeId = DataProvider.NodeDao.GetNodeIdByParentIdAndNodeName(_publishmentSystemInfo.PublishmentSystemId, parentId, nodeInfo.NodeName, false); if (theSameNameNodeId != 0) { isUpdate = true; } } if (!isUpdate) { //BackgroundNodeInfo backgroundNodeInfo = new BackgroundNodeInfo(); //this.ImportBackgroundNodeInfo(backgroundNodeInfo, feed.AdditionalElements); nodeId = DataProvider.NodeDao.InsertNodeInfo(nodeInfo); } else { nodeId = theSameNameNodeId; nodeInfo = NodeManager.GetNodeInfo(_publishmentSystemInfo.PublishmentSystemId, theSameNameNodeId); var tableName = NodeManager.GetTableName(_publishmentSystemInfo, nodeInfo); ImportNodeInfo(nodeInfo, feed.AdditionalElements, parentId, nodeIndexNameList); DataProvider.NodeDao.UpdateNodeInfo(nodeInfo); DataProvider.ContentDao.DeleteContentsByNodeId(_publishmentSystemInfo.PublishmentSystemId, tableName, theSameNameNodeId); } if (isImportContents) { ImportContents(feed.Entries, nodeInfo, 0, isOverride); } } //this.FSO.CreateRedirectChannel(nodeID); //this.FSO.AddChannelToWaitingCreate(nodeID); return(nodeId); }