From 7ea9caa9f836d5877cf50198dd35d1d86ebc02d6 Mon Sep 17 00:00:00 2001 From: Hundrer Date: Sat, 12 May 2018 03:21:37 +0800 Subject: [PATCH] [8039]Update QueryElementDriver.cs (#8041) Fixes #8039 --- .../Drivers/QueryElementDriver.cs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/QueryElementDriver.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/QueryElementDriver.cs index 3bb62f6eb..10a6aa881 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/QueryElementDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Drivers/QueryElementDriver.cs @@ -174,5 +174,29 @@ namespace Orchard.DynamicForms.Drivers { var runtimeValue = element.RuntimeValue; return runtimeValue != null ? runtimeValue.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries) : Enumerable.Empty(); } + + protected override void OnExporting(Query element, ExportElementContext context) { + base.OnExporting(element, context); + if (element.QueryId == null) + return; + var queryContentItem = _contentManager.Get(element.QueryId.Value); + if (queryContentItem == null) + return; + context.Element.Data.Add("QueryElementIdentity", _contentManager.GetItemMetadata(queryContentItem).Identity.ToString()); + } + + protected override void OnImported(Query element, ImportElementContext context) { + base.OnImported(element, context); + if (!context.Element.Data.Keys.Contains("QueryElementIdentity")) + return; + var queryIdentifier = context.Element.Data["QueryElementIdentity"]; + var queryContentItem = context.Session.GetItemFromSession(queryIdentity).Content; + if (queryIdentityPart == null) + return; + element.QueryId = queryContentItem.ContentItem.Id; + if (!context.Element.Data.Keys.Contains("QueryId")) + return; + context.Element.Data["QueryId"] = element.QueryId.ToString(); + } } -} \ No newline at end of file +}