From d8437d3435abd435a32dfc5c2ebd64c08f81ec3a Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 1 Jul 2014 20:05:28 -0700 Subject: [PATCH] Storing EventData as XML instead of CData. --- .../ImportExport/AuditTrailExportHandler.cs | 33 ++++++++++++------- .../ImportExport/AuditTrailExportStep.cs | 1 - .../ImportExport/AuditTrailImportHandler.cs | 2 +- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportHandler.cs index 8f735bb08..82b5cace9 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportHandler.cs @@ -1,11 +1,9 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Xml.Linq; using Orchard.AuditTrail.Models; using Orchard.Data; using Orchard.Environment.Extensions; -using Orchard.Events; using Orchard.ImportExport.Services; namespace Orchard.AuditTrail.ImportExport { @@ -22,7 +20,7 @@ namespace Orchard.AuditTrail.ImportExport { public void Exported(ExportContext context) { - if (!((IEnumerable)context.ExportOptions.CustomSteps).Contains("AuditTrail")) { + if (!context.ExportOptions.CustomSteps.Contains("AuditTrail")) { return; } @@ -37,14 +35,14 @@ namespace Orchard.AuditTrail.ImportExport { foreach (var record in records) { root.Add(new XElement("Event", - new XAttribute("Name", record.Event), - new XAttribute("Category", record.Category), - new XAttribute("User", record.UserName), - new XAttribute("CreatedUtc", record.CreatedUtc), - new XAttribute("EventFilterKey", record.EventFilterKey), - new XAttribute("EventFilterData", record.EventFilterData), + CreateAttribute("Name", record.Event), + CreateAttribute("Category", record.Category), + CreateAttribute("User", record.UserName), + CreateAttribute("CreatedUtc", record.CreatedUtc), + CreateAttribute("EventFilterKey", record.EventFilterKey), + CreateAttribute("EventFilterData", record.EventFilterData), CreateElement("Comment", record.Comment), - CreateCDataElement("EventData", record.EventData))); + ParseEventData(record.EventData))); } } @@ -52,8 +50,19 @@ namespace Orchard.AuditTrail.ImportExport { return !String.IsNullOrWhiteSpace(value) ? new XElement(name, value) : null; } - private static XElement CreateCDataElement(string name, string value) { - return !String.IsNullOrWhiteSpace(value) ? new XElement(name, new XCData(value)) : null; + private static XAttribute CreateAttribute(string name, string value) { + return !String.IsNullOrWhiteSpace(value) ? new XAttribute(name, value) : null; + } + + private static XAttribute CreateAttribute(string name, object value) { + return new XAttribute(name, value); + } + + private static XElement ParseEventData(string eventData) { + if(String.IsNullOrWhiteSpace(eventData)) + return new XElement("EventData"); + + return XElement.Parse(eventData); } } } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportStep.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportStep.cs index dc0291953..786f84529 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportStep.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailExportStep.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Orchard.Environment.Extensions; -using Orchard.Events; using Orchard.ImportExport.Services; namespace Orchard.AuditTrail.ImportExport { diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailImportHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailImportHandler.cs index 9fffd5b05..9ad6af060 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailImportHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/ImportExport/AuditTrailImportHandler.cs @@ -29,7 +29,7 @@ namespace Orchard.AuditTrail.ImportExport { EventFilterKey = eventElement.Attr("EventFilterKey"), EventFilterData = eventElement.Attr("EventFilterData"), Comment = eventElement.El("Comment"), - EventData = eventElement.El("EventData"), + EventData = eventElement.Element("EventData").ToString(), }; _auditTrailEventRepository.Create(record);