Exemple #1
0
        public static void Write(this TableField field, CSideWriter writer)
        {
            var debt = 0;

            var fieldNo       = BuildFieldPart(field.ID.ToString(), 4, ref debt);
            var fieldEnabled  = BuildFieldPart(field.Enabled.AsString(), 3, ref debt);
            var fieldName     = BuildFieldPart(field.Name, 20, ref debt);
            var fieldTypeName = BuildFieldPart(field.TypeName(), 14, ref debt);
            var declaration   = string.Format("{{ {0};{1};{2};{3}", fieldNo, fieldEnabled, fieldName, fieldTypeName);
            var properties    = field.AllProperties;

            writer.Write("{0}", declaration.PadRight(46));
            writer.Write(properties.Any(p => p.HasValue) ? ";" : " ");

            if ((writer.Column > 51) && (properties.Any(p => p.HasValue)))
            {
                writer.Indent(51);
                writer.WriteLine("");
            }
            else
            {
                writer.Indent(writer.Column);
            }

            properties.Write(PropertiesStyle.Field, writer);

            var relevantProperties = properties.Where(p => p.HasValue);
            var lastProperty       = relevantProperties.LastOrDefault();

            if (lastProperty != null)
            {
                if (lastProperty is TriggerProperty)
                {
                    writer.Write(new string(' ', lastProperty.Name.Length + 2));
                }
            }

            writer.WriteLine("}");
            writer.Unindent();
        }