protected override void Importing(QueryPart part, ImportContentContext context) { var queryElement = context.Data.Element(part.PartDefinition.Name); part.Record.FilterGroups.Clear(); foreach (var item in queryElement.Element("FilterGroups").Elements("FilterGroup").Select(filterGroup => new FilterGroupRecord { Filters = filterGroup.Elements("Filter").Select(filter => { var category = filter.Attribute("Category").Value; var type = filter.Attribute("Type").Value; var state = filter.Attribute("State").Value; var descriptor = _projectionManager.GetFilter(category, type); if (descriptor != null) { state = _formManager.Import(descriptor.Form, state, context); } return(new FilterRecord { Category = category, Description = filter.Attribute("Description").Value, Position = Convert.ToInt32(filter.Attribute("Position").Value), State = state, Type = type }); }).ToList() })) { part.Record.FilterGroups.Add(item); } part.Record.SortCriteria.Clear(); foreach (var item in queryElement.Element("SortCriteria").Elements("SortCriterion").Select(sortCriterion => { var category = sortCriterion.Attribute("Category").Value; var type = sortCriterion.Attribute("Type").Value; var state = sortCriterion.Attribute("State").Value; var descriptor = _projectionManager.GetFilter(category, type); if (descriptor != null) { state = _formManager.Import(descriptor.Form, state, context); } return(new SortCriterionRecord { Category = category, Description = sortCriterion.Attribute("Description").Value, Position = Convert.ToInt32(sortCriterion.Attribute("Position").Value), State = state, Type = type }); })) { part.Record.SortCriteria.Add(item); } part.Record.Layouts.Clear(); foreach (var item in queryElement.Element("Layouts").Elements("Layout").Select(layout => { var category = layout.Attribute("Category").Value; var type = layout.Attribute("Type").Value; var state = layout.Attribute("State").Value; var descriptor = _projectionManager.GetFilter(category, type); if (descriptor != null) { state = _formManager.Import(descriptor.Form, state, context); } return(new LayoutRecord { Category = category, Description = layout.Attribute("Description").Value, Display = int.Parse(layout.Attribute("Display").Value), DisplayType = layout.Attribute("DisplayType").Value, State = state, Type = type, Properties = layout.Element("Properties").Elements("Property").Select(GetProperty).ToList(), GroupProperty = GetProperty(layout.Element("Group").Element("Property")) }); })) { part.Record.Layouts.Add(item); } }