public void ExportInput(int inputId) { var inputInfo = DataProvider.InputDao.GetInputInfo(inputId); var filePath = _directoryPath + PathUtils.SeparatorChar + inputInfo.InputId + ".xml"; var feed = ExportInputInfo(inputInfo); var styleDirectoryPath = PathUtils.Combine(_directoryPath, inputInfo.InputId.ToString()); TableStyleIe.SingleExportTableStyles(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, _publishmentSystemId, inputInfo.InputId, styleDirectoryPath); var contentIdList = DataProvider.InputContentDao.GetContentIdListWithChecked(inputInfo.InputId); foreach (var contentId in contentIdList) { var contentInfo = DataProvider.InputContentDao.GetContentInfo(contentId); var entry = GetAtomEntry(contentInfo); feed.Entries.Add(entry); } feed.Save(filePath); }
public void ImportInput(bool overwrite) { if (!DirectoryUtils.IsDirectoryExists(_directoryPath)) { return; } var filePaths = DirectoryUtils.GetFilePaths(_directoryPath); foreach (var filePath in filePaths) { var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(filePath)); var inputInfo = new InputInfo { InputName = AtomUtility.GetDcElementContent(feed.AdditionalElements, "InputName"), PublishmentSystemId = _publishmentSystemId, AddDate = DateTime.Now, IsChecked = TranslateUtils.ToBool(AtomUtility.GetDcElementContent(feed.AdditionalElements, "IsChecked")), IsReply = TranslateUtils.ToBool(AtomUtility.GetDcElementContent(feed.AdditionalElements, "IsReply")), Taxis = TranslateUtils.ToInt(AtomUtility.GetDcElementContent(feed.AdditionalElements, "Taxis")), SettingsXml = AtomUtility.Decrypt(AtomUtility.GetDcElementContent(feed.AdditionalElements, "SettingsXML")) }; var srcInputInfo = DataProvider.InputDao.GetInputInfo(inputInfo.InputName, _publishmentSystemId); if (srcInputInfo != null) { if (overwrite) { DataProvider.InputDao.Delete(srcInputInfo.InputId); } else { inputInfo.InputName = DataProvider.InputDao.GetImportInputName(inputInfo.InputName, _publishmentSystemId); } } var inputId = DataProvider.InputDao.Insert(inputInfo); var styleDirectoryPath = PathUtils.Combine(_directoryPath, AtomUtility.GetDcElementContent(feed.AdditionalElements, "InputID")); TableStyleIe.SingleImportTableStyle(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, styleDirectoryPath, inputId); foreach (AtomEntry entry in feed.Entries) { var contentInfo = new InputContentInfo { InputId = inputId, IsChecked = TranslateUtils.ToBool(AtomUtility.GetDcElementContent(entry.AdditionalElements, InputContentAttribute.IsChecked)), UserName = AtomUtility.GetDcElementContent(entry.AdditionalElements, InputContentAttribute.UserName), AddDate = DateTime.Now, Reply = AtomUtility.GetDcElementContent(entry.AdditionalElements, InputContentAttribute.Reply) }; var attributes = AtomUtility.GetDcElementNameValueCollection(entry.AdditionalElements); foreach (string entryName in attributes.Keys) { if (!InputContentAttribute.AllAttributes.Contains(entryName.ToLower())) { contentInfo.SetExtendedAttribute(entryName, attributes[entryName]); } } DataProvider.InputContentDao.Insert(contentInfo); } } }