public static void Write(this LinkFieldsProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.Name); writer.Indent(writer.Column); foreach (var linkField in property.Value) { writer.Write("Field{0}=FIELD(Field{1})", linkField.Field, linkField.ReferenceField); var isLastLine = (linkField == property.Value.Last()); if (!isLastLine) { writer.WriteLine(","); } else if (isLastProperty) { writer.Write(" "); } else { writer.WriteLine(";"); } } writer.Unindent(); }
internal static void SetLinkFieldsProperty(this LinkFieldsProperty property, string propertyValue) { do { var fieldNo = Parsing.MustMatch(ref propertyValue, @"^Field(\d+)=FIELD\(").Groups[1].Value.ToInteger(); var referenceFieldNo = Parsing.MustMatch(ref propertyValue, @"^Field(\d+)\)").Groups[1].Value.ToInteger(); property.Value.Add(new LinkField(fieldNo, referenceFieldNo)); }while (Parsing.TryMatch(ref propertyValue, @"^,\s?")); }