public static void Write(this XmlPortTableElement xmlPortTableElement, CSideWriter writer) { var relevantProperties = xmlPortTableElement.Properties.Where(p => p.HasValue); WriteDeclaration(xmlPortTableElement.ID, xmlPortTableElement.NodeName, xmlPortTableElement.IndentationLevel, "Element", "Table", relevantProperties.Any(), writer); relevantProperties.Write(PropertiesStyle.Field, writer); writer.Write(IndentationAfterLastTrigger(relevantProperties)); writer.WriteLine("}"); writer.Unindent(); writer.InnerWriter.WriteLine(); }
protected override IEnumerable <XmlPortNode> CreateItems() { var xmlPortTableElement = new XmlPortTableElement(Name, GetIndentation(), ID); xmlPortTableElement.Properties.AutoReplace = NullableBooleanFromSwitch(nameof(AutoReplace)); xmlPortTableElement.Properties.AutoSave = NullableBooleanFromSwitch(nameof(AutoSave)); xmlPortTableElement.Properties.AutoUpdate = NullableBooleanFromSwitch(nameof(AutoUpdate)); xmlPortTableElement.Properties.CalcFields.AddRange(CalcFields); xmlPortTableElement.Properties.LinkTable = LinkTable; xmlPortTableElement.Properties.LinkTableForceInsert = NullableBooleanFromSwitch(nameof(LinkTableForceInsert)); xmlPortTableElement.Properties.MaxOccurs = MaxOccurs; xmlPortTableElement.Properties.MinOccurs = MinOccurs; xmlPortTableElement.Properties.NamespacePrefix = NamespacePrefix; xmlPortTableElement.Properties.OnAfterGetRecord.Set(OnAfterGetRecord); xmlPortTableElement.Properties.OnAfterInitRecord.Set(OnAfterInitRecord); xmlPortTableElement.Properties.OnAfterInsertRecord.Set(OnAfterInsertRecord); xmlPortTableElement.Properties.OnAfterModifyRecord.Set(OnAfterModifyRecord); xmlPortTableElement.Properties.OnBeforeInsertRecord.Set(OnBeforeInsertRecord); xmlPortTableElement.Properties.OnBeforeModifyRecord.Set(OnBeforeModifyRecord); xmlPortTableElement.Properties.OnPreXMLItem.Set(OnPreXMLItem); xmlPortTableElement.Properties.ReqFilterFields.AddRange(ReqFilterFields); xmlPortTableElement.Properties.SourceTable = SourceTable; xmlPortTableElement.Properties.SourceTableView.Key = SourceTableViewKey; xmlPortTableElement.Properties.SourceTableView.Order = SourceTableViewOrder; xmlPortTableElement.Properties.Temporary = NullableBooleanFromSwitch(nameof(Temporary)); xmlPortTableElement.Properties.VariableName = VariableName; xmlPortTableElement.Properties.Width = Width; yield return(xmlPortTableElement); if (ChildNodes != null) { var variables = new List <PSVariable>() { new PSVariable("NodeIndentation", GetIndentation() + 1) }; var childNodes = ChildNodes.InvokeWithContext(null, variables).Select(c => c.BaseObject); xmlPortTableElement.Properties.LinkFields.AddRange(childNodes.OfType <LinkField>()); xmlPortTableElement.Properties.SourceTableView.TableFilter.AddRange(childNodes.OfType <TableFilterLine>()); foreach (var childNode in childNodes.OfType <XmlPortNode>()) { yield return(childNode); } } }