示例#1
0
        public static void Write(this XmlPortTextAttribute xmlPortTextAttribute, CSideWriter writer)
        {
            var relevantProperties = xmlPortTextAttribute.Properties.Where(p => p.HasValue);

            WriteDeclaration(xmlPortTextAttribute.ID, xmlPortTextAttribute.NodeName, xmlPortTextAttribute.IndentationLevel, "Attribute", "Text", relevantProperties.Any(), writer);
            relevantProperties.Write(PropertiesStyle.Field, writer);
            writer.Write(IndentationAfterLastTrigger(relevantProperties));
            writer.WriteLine("}");
            writer.Unindent();
            writer.InnerWriter.WriteLine();
        }
 public static void Write(this DataportDataItem dataportDataItem, CSideWriter writer)
 {
     writer.Write("{ ");
     writer.Indent();
     writer.BeginSection("PROPERTIES");
     dataportDataItem.Properties.Write(PropertiesStyle.Object, writer);
     writer.EndSection();
     dataportDataItem.Fields.Write(writer);
     writer.WriteLine(" }");
     writer.Unindent();
 }
 public static void Write(this SectionBase reportDataItemSection, CSideWriter writer)
 {
     writer.Write("{ ");
     writer.Indent();
     writer.BeginSection("PROPERTIES");
     reportDataItemSection.AllProperties.Where(p => p.HasValue).Write(PropertiesStyle.Object, writer);
     writer.EndSection();
     reportDataItemSection.Controls.Write(writer, 58);
     writer.WriteLine(" }");
     writer.Unindent();
 }
示例#4
0
/*
 *      public static void Write(this PageControlGroup groupPageControl, CSideWriter writer, int propertyIndentation)
 *      {
 *          var debt = 0;
 *          var controlID = BuildControlPart(groupPageControl.ID.ToString(), 4, ref debt);
 *          var controlIndentation = BuildControlPart(groupPageControl.IndentationLevel.AsString(), 4, ref debt);
 *          var controlType = BuildControlPart("Group", 10, ref debt);
 *          var declaration = string.Format("{{ {0};{1};{2}", controlID, controlIndentation, controlType);
 *
 *          writer.Write(declaration);
 *
 *          if (groupPageControl.Properties.Any(p => p.HasValue))
 *          {
 *              writer.WriteLine(";");
 *              writer.Indent(propertyIndentation);
 *              groupPageControl.Properties.Write(PropertiesStyle.Field, writer);
 *              writer.Unindent();
 *          }
 *          else
 *          {
 *              writer.Write(" ");
 *          }
 *
 *          //var idLength = Math.Max(groupPageControl.ID.ToString().Length, 4);
 *          //var id = groupPageControl.ID.ToString().PadRight(idLength);
 *          //var idAndIndentation = string.Format("{0};{1}", id, groupPageControl.IndentationLevel.ToString()).PadRight(9);
 *          //var idAndIndentationAndType = string.Format("{0};Group", idAndIndentation);
 *
 *          //writer.WriteLine("{{ {0};", idAndIndentationAndType.PadRight(20));
 *
 *          if (groupPageControl.Properties.Where(p => p.HasValue).LastOrDefault() is ActionListProperty)
 *              writer.Write(new string(' ', 13));
 *
 *          writer.WriteLine("}");
 *          writer.InnerWriter.WriteLine();
 *      }
 *
 *      public static void Write(this PageControlPart partPageControl, CSideWriter writer, int propertyIndentation)
 *      {
 *          var debt = 0;
 *          var controlID = BuildControlPart(partPageControl.ID.ToString(), 4, ref debt);
 *          var controlIndentation = BuildControlPart(partPageControl.IndentationLevel.AsString(), 4, ref debt);
 *          var controlType = BuildControlPart("Part", 10, ref debt);
 *          var declaration = string.Format("{{ {0};{1};{2};", controlID, controlIndentation, controlType);
 *          writer.WriteLine(declaration);
 *
 *
 *          //var idLength = Math.Max(partPageControl.ID.ToString().Length, 4);
 *          //var id = partPageControl.ID.ToString().PadRight(idLength);
 *          //var idAndIndentation = string.Format("{0};{1}", id, partPageControl.IndentationLevel.ToString());
 *          //var idAndIndentationAndType = string.Format("{{ {0};Part", idAndIndentation.PadRight(9));
 *
 *          //writer.WriteLine("{0};", idAndIndentationAndType.PadRight(22));
 *
 *          writer.Indent(propertyIndentation);
 *          partPageControl.Properties.Write(PropertiesStyle.Field, writer);
 *          writer.WriteLine("}");
 *          writer.Unindent();
 *          writer.InnerWriter.WriteLine();
 *      }*/

        public static void Write(this FormControl fieldFormControl, CSideWriter writer, int propertyIndentation)
        {
            var debt          = 0;
            var controlID     = BuildControlPart(fieldFormControl.ID.ToString(), 4, ref debt);
            var controlType   = BuildControlPart(fieldFormControl.Type.ToString(), 13, ref debt);
            var controlXPos   = BuildControlPart(fieldFormControl.PosX.ToString(), 5, ref debt);
            var controlYPos   = BuildControlPart(fieldFormControl.PosY.ToString(), 5, ref debt);
            var controlWidth  = BuildControlPart(fieldFormControl.Width.ToString(), 5, ref debt);
            var controlHeight = BuildControlPart(fieldFormControl.Height.ToString(), 5, ref debt);

            var relevantProperties = fieldFormControl.Properties.Where(p => p.HasValue);
            var declaration        = string.Format("{{ {0};{1};{2};{3};{4};{5}", controlID, controlType, controlXPos, controlYPos, controlWidth, controlHeight);

            writer.Write(declaration);
            writer.Write(relevantProperties.Any() ? ";" : " ");

            if ((writer.Column > propertyIndentation) && (relevantProperties.Any()))
            {
                writer.Indent(propertyIndentation);
                writer.WriteLine("");
            }
            else
            {
                writer.Indent(writer.Column);
            }

            relevantProperties.Write(PropertiesStyle.Field, writer);

            var lastProperty = relevantProperties.LastOrDefault();

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

            writer.WriteLine("}");
            writer.Unindent();
        }
示例#5
0
        public static void Write(this SIFTLevelsProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            //SIFTLevelsToMaintain=[{G/L Account No.,Global Dimension 1 Code},
            //          {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code},
            //          {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Year},
            //          {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Month},
            //          {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Day}] }

            writer.Write("{0}=[", property.Name);
            writer.Indent(writer.Column);

            foreach (var siftLevel in property.Value)
            {
                writer.Write("{");
                writer.Write(string.Join(",", siftLevel.Components.Select(f => f.FieldName + (!string.IsNullOrEmpty(f.Aspect) ? string.Format(":{0}", f.Aspect) : string.Empty))));

                var isLastLine = (siftLevel == property.Value.Last());

                switch (isLastLine)
                {
                case true:
                    switch (isLastProperty)
                    {
                    case true:
                        writer.Write("}] ");
                        break;

                    default:
                        writer.WriteLine("}];");
                        break;
                    }
                    break;

                default:
                    writer.WriteLine("},");
                    break;
                }
            }

            writer.Unindent();
        }
示例#6
0
        public static void Write(this FunctionReturnValue functionReturnValue, CSideWriter writer)
        {
            if (!functionReturnValue.Type.HasValue)
            {
                return;
            }

            if (!string.IsNullOrEmpty(functionReturnValue.Name))
            {
                writer.Write(" {0}", functionReturnValue.Name);
            }

            writer.Write(" : ");

            if (!string.IsNullOrEmpty(functionReturnValue.Dimensions))
            {
                writer.Write("ARRAY [{0}] OF ", functionReturnValue.Dimensions);
            }

            writer.Write(GetTypeName(functionReturnValue));
        }
        public static void Write(this PageActionGroup action, CSideWriter writer)
        {
            var idLength         = Math.Max(action.ID.ToString().Length, 8);
            var id               = action.ID.ToString().PadRight(idLength);
            var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.ToString());

            writer.Write("{{ {0};", idAndIndentation.PadRight(13));
            writer.Indent(writer.Column);
            writer.Write("ActionGroup");
            if (action.Properties.Any(p => p.HasValue))
            {
                writer.WriteLine(";");
                action.Properties.Write(PropertiesStyle.Field, writer);
            }
            else
            {
                writer.Write(" ");
            }
            writer.WriteLine("}");
            writer.Unindent();
        }
        public static void Write(this Parameters parameters, CSideWriter writer)
        {
            foreach (var parameter in parameters)
            {
                parameter.Write(writer);

                if (parameter != parameters.Last())
                {
                    writer.Write(";");
                }
            }
        }
示例#9
0
        private static void DoWrite(bool var, string name, int uid, bool temporary, string typeName, string dimensions, CSideWriter writer)
        {
            if (var)
            {
                writer.Write("VAR ");
            }

            writer.Write("{0}@{1} : ", name, uid);

            if (!string.IsNullOrEmpty(dimensions))
            {
                writer.Write("ARRAY [{0}] OF ", dimensions.Replace(';', ','));
            }

            if (temporary)
            {
                writer.Write("TEMPORARY ");
            }

            writer.Write(typeName);
        }
示例#10
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();
        }
示例#11
0
        public static void Write(this PageReferenceProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            switch (isLastProperty)
            {
            case true:
                writer.Write("{0}=Page{1} ", property.Name, property.Value.Value);
                break;

            case false:
                writer.WriteLine("{0}=Page{1};", property.Name, property.Value.Value);
                break;
            }
        }
示例#12
0
        public static void Write(this RunObjectProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            switch (isLastProperty)
            {
            case true:
                writer.Write("{0}={1} {2} ", property.Name, FormatRunObjectType(property.Value.Type.Value), property.Value.ID);
                break;

            case false:
                writer.WriteLine("{0}={1} {2};", property.Name, FormatRunObjectType(property.Value.Type.Value), property.Value.ID);
                break;
            }
        }
示例#13
0
        public static void Write(this QueryOrderByLinesProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            writer.Write("{0}=", property.Name);
            writer.Indent(writer.Column);

            foreach (var line in property.Value)
            {
                var isLastLine = (line == property.Value.Last());
                writer.WriteLine("{0}={1}{2}", line.Column, line.Direction, isLastLine ? ";" : ",");
            }

            writer.Unindent();
        }
示例#14
0
        public static void WriteSimpleProperty(string propertyName, string propertyValue, bool isLastProperty, CSideWriter writer)
        {
            switch (isLastProperty)
            {
            case true:
                writer.Write("{0}={1} ", propertyName, propertyValue);
                break;

            case false:
                writer.WriteLine("{0}={1};", propertyName, propertyValue);
                break;
            }
        }
        public static void Write(this PageActionContainer action, CSideWriter writer)
        {
            var idLength         = Math.Max(action.ID.ToString().Length, 8);
            var id               = action.ID.ToString().PadRight(idLength);
            var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.HasValue ? action.IndentationLevel.ToString() : string.Empty);

            writer.Write("{{ {0};", idAndIndentation.PadRight(13));
            writer.Indent(writer.Column);
            writer.WriteLine("ActionContainer;");
            action.Properties.Write(PropertiesStyle.Field, writer);
            writer.WriteLine("}");
            writer.Unindent();
        }
示例#16
0
        public static void Write(this ColumnFilterProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            writer.Write("{0}=", property.Name);
            writer.Indent(writer.Column);

            foreach (var line in property.Value)
            {
                var isLastLine = (line == property.Value.Last());
                writer.WriteLine("{0}={1}({2}){3}", line.FieldName, line.Type.AsString(), line.Value, isLastLine ? ";" : ",");
            }

            writer.Unindent();
        }
示例#17
0
        public static void Write(this NullableBooleanProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            switch (isLastProperty)
            {
            case true:
                writer.Write("{0}={1} ", property.Name, property.Value.Value ? "Yes" : "No");
                break;

            case false:
                writer.WriteLine("{0}={1};", property.Name, property.Value.Value ? "Yes" : "No");
                break;
            }
        }
示例#18
0
        public static void Write(this Function function, CSideWriter writer)
        {
            writer.InnerWriter.WriteLine();
#if NAV2016
            WriteSubscriberAttributes(function, writer);
            writer.WriteLineIf(function.TryFunction.GetValueOrDefault(false), "[TryFunction]");
            WritePublisherAttributes(function, writer);
#endif
#if NAV2018
            writer.WriteLineIf(
                function.FunctionVisibility.GetValueOrDefault(Common.FunctionVisibility.Internal) == Common.FunctionVisibility.External &&
                function.ServiceEnabled.GetValueOrDefault(false),
                "[ServiceEnabled]");
#endif
#if NAV2015
            writer.WriteLineIf(function.UpgradeFunctionType.HasValue, "[{0}]", function.UpgradeFunctionType);
#endif
            writer.WriteLineIf(function.TestFunctionType.HasValue, "[{0}]", function.TestFunctionType);
            writer.WriteLineIf(function.HandlerFunctions != null, "[HandlerFunctions({0})]", function.HandlerFunctions);
            writer.WriteLineIf(function.TransactionModel.HasValue, "[TransactionModel({0})]", function.TransactionModel);
#if NAV2017
            writer.WriteLineIf(function.TestPermissions.HasValue, "[TestPermissions({0})]", function.TestPermissions);
#endif
#if NAV2018
            writer.WriteLineIf(function.FunctionVisibility.HasValue, "[{0}]", function.FunctionVisibility);
#endif
            writer.Write("{2}PROCEDURE {0}@{1}(", function.Name, function.ID, function.Local ? "LOCAL " : "");
            function.Parameters.Write(writer);
            writer.Write(")");
            function.ReturnValue.Write(writer);
            writer.WriteLine(";");
            function.Variables.Write(writer);
            writer.WriteLine("BEGIN");
            writer.Indent();
            function.CodeLines.Write(writer);
            writer.Unindent();
            writer.WriteLine("END;");
        }
示例#19
0
        public static void Write(this Event @event, CSideWriter writer)
        {
            writer.InnerWriter.WriteLine();

            writer.Write("EVENT {0}@{1}::{2}@{3}(", @event.SourceName, @event.SourceID, @event.Name, @event.ID);
            @event.Parameters.Write(writer);
            writer.WriteLine(");");
            @event.Variables.Write(writer);
            writer.WriteLine("BEGIN");
            writer.Indent();
            @event.CodeLines.Write(writer);
            writer.Unindent();
            writer.WriteLine("END;");
        }
示例#20
0
        public static void Write(this FormMenuItemBase fieldFormControl, CSideWriter writer)
        {
            var relevantProperties = fieldFormControl.Properties.Where(p => p.HasValue);
            var declaration        = "{ ";

            writer.Write(declaration);
            writer.Indent(writer.Column);

            relevantProperties.Write(PropertiesStyle.Field, writer);

            var lastProperty = relevantProperties.LastOrDefault();

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

            writer.WriteLine("}");
            writer.Unindent();
        }
        private static void WriteDeclaration(int id, int?indentation, string type, string name, CSideWriter writer)
        {
            name = name ?? string.Empty;
            var nameLength = Math.Max(name.Length, 20);

            writer.Write("{ ");
            writer.Write(id.ToString().PadRight(4));
            writer.Write(";");
            writer.Write((indentation.HasValue ? indentation.Value.ToString() : string.Empty).PadRight(4));
            writer.Indent(writer.Column);
            writer.Write(";");
            writer.Write(type.PadRight(8));
            writer.Write(";");
            writer.Write(name.PadRight(nameLength));
            writer.WriteLine(";");
        }
示例#22
0
        public static void Write(this ReportDataItemLinkProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            writer.Write("{0}=", property.Name);
            writer.Indent(writer.Column);

            foreach (var line in property.Value)
            {
                var isLastLine = (line == property.Value.Last());

                switch (isLastProperty && isLastLine)
                {
                case true:
                    writer.Write("{0}=FIELD({1}) ", line.FieldName, line.ReferenceFieldName);
                    break;

                case false:
                    writer.WriteLine("{0}=FIELD({1}){2}", line.FieldName, line.ReferenceFieldName, isLastLine ? ";" : ",");
                    break;
                }
            }

            writer.Unindent();
        }
        public static void Write(this PageControlGroup groupPageControl, CSideWriter writer, int propertyIndentation)
        {
            var debt               = 0;
            var controlID          = BuildControlPart(groupPageControl.ID.ToString(), 4, ref debt);
            var controlIndentation = BuildControlPart(groupPageControl.IndentationLevel.AsString(), 4, ref debt);
            var controlType        = BuildControlPart("Group", 10, ref debt);
            var declaration        = string.Format("{{ {0};{1};{2}", controlID, controlIndentation, controlType);

            writer.Write(declaration);

            if (groupPageControl.Properties.Any(p => p.HasValue))
            {
                writer.WriteLine(";");
                writer.Indent(propertyIndentation);
                groupPageControl.Properties.Write(PropertiesStyle.Field, writer);
                writer.Unindent();
            }
            else
            {
                writer.Write(" ");
            }

            //var idLength = Math.Max(groupPageControl.ID.ToString().Length, 4);
            //var id = groupPageControl.ID.ToString().PadRight(idLength);
            //var idAndIndentation = string.Format("{0};{1}", id, groupPageControl.IndentationLevel.ToString()).PadRight(9);
            //var idAndIndentationAndType = string.Format("{0};Group", idAndIndentation);

            //writer.WriteLine("{{ {0};", idAndIndentationAndType.PadRight(20));

            if (groupPageControl.Properties.Where(p => p.HasValue).LastOrDefault() is ActionListProperty)
            {
                writer.Write(new string(' ', 13));
            }

            writer.WriteLine("}");
            writer.InnerWriter.WriteLine();
        }
        public static void Write(this DataportField dataportField, CSideWriter writer, int propertyIndentation)
        {
            var debt               = 0;
            var startPos           = BuildControlPart(dataportField.StartPosition.HasValue? dataportField.StartPosition.Value.ToString() : "", 5, ref debt);
            var width              = BuildControlPart(dataportField.Width.HasValue? dataportField.Width.Value.ToString() : "", 5, ref debt);
            var sourceExp          = BuildControlPart(dataportField.SourceExpr, 20, ref debt);
            var relevantProperties = dataportField.Properties.Where(p => p.HasValue);
            var declaration        = string.Format("{{ {0};{1};{2}", startPos, width, sourceExp);

            writer.Write(declaration);
            writer.Write(relevantProperties.Any() ? ";" : " ");

            if ((writer.Column > propertyIndentation) && (relevantProperties.Any()))
            {
                writer.Indent(propertyIndentation);
                writer.WriteLine("");
            }
            else
            {
                writer.Indent(writer.Column);
            }

            relevantProperties.Write(PropertiesStyle.Field, writer);

            var lastProperty = relevantProperties.LastOrDefault();

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

            writer.WriteLine("}");
            writer.Unindent();
        }
示例#25
0
        public static void Write(this OptionStringProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            var value = (property.Value.Trim() != property.Value) ? string.Format("[{0}]", property.Value) : property.Value;

            switch (isLastProperty)
            {
            case true:
                writer.Write("{0}={1} ", property.Name, value);
                break;

            case false:
                writer.WriteLine("{0}={1};", property.Name, value);
                break;
            }
        }
示例#26
0
        public static void Write(this PermissionsProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            writer.Write("{0}=", property.Name);
            writer.Indent(writer.Column);

            foreach (var permission in property.Value)
            {
                var isLastValue = (permission == property.Value.Last());
                var terminator  = isLastValue ? ";" : ",";
                var read        = permission.ReadPermission ? "r" : "";
                var insert      = permission.InsertPermission ? "i" : "";
                var modify      = permission.ModifyPermission ? "m" : "";
                var delete      = permission.DeletePermission ? "d" : "";

                writer.WriteLine("TableData {0}={1}{2}{3}{4}{5}", permission.TableID, read, insert, modify, delete, terminator);
            }

            writer.Unindent();
        }
示例#27
0
        public static void Write(this ScopedTriggerProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer)
        {
            writer.Write("{0}=", property.ScopedName());
            writer.Indent(writer.Column);
            property.Value.Variables.Write(writer);

            writer.WriteLine("BEGIN");
            writer.Indent();
            property.Value.CodeLines.Write(writer);
            writer.Unindent();
            writer.WriteLine("END;");

            writer.Unindent();

            if (!isLastProperty || style == PropertiesStyle.Object)
            {
                writer.InnerWriter.WriteLine();
            }
        }
        public static void WriteSubscriberAttributes(Function function, CSideWriter writer)
        {
            if (function.Event.GetValueOrDefault(EventPublisherSubscriber.No) != EventPublisherSubscriber.Subscriber)
            {
                return;
            }

            if (function.EventPublisherObject.Type == null)
            {
                return;
            }
            if (function.EventPublisherObject.ID == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(function.EventFunction))
            {
                return;
            }

            writer.Write(
                "[EventSubscriber({0},{1},{2}",
                function.EventPublisherObject.Type,
                function.EventPublisherObject.ID,
                function.EventFunction);

            var parameters =
                string.Format(
                    ",{0},{1}",
                    function.OnMissingLicense.HasValue ? function.OnMissingLicense.ToString() : "DEFAULT",
                    function.OnMissingPermission.HasValue ? function.OnMissingPermission.ToString() : "DEFAULT");
            var eventPublisherElement = string.IsNullOrEmpty(function.EventPublisherElement) ? ",\"\"" : string.Format(",{0}", function.EventPublisherElement);

            // Handle exceptional cases
            parameters            = parameters == ",DEFAULT,DEFAULT" ? "" : parameters;
            parameters            = parameters == ",Skip,DEFAULT" ? ",Skip" : parameters;
            parameters            = parameters == ",Error,DEFAULT" ? ",Error" : parameters;
            eventPublisherElement = (parameters == "" && eventPublisherElement == ",\"\"" ? "" : eventPublisherElement);

            writer.WriteLine("{0}{1})]", eventPublisherElement, parameters);
        }
示例#29
0
        public static void WriteLineParts(this CSideWriter writer, params LinePart[] parts)
        {
            var debt = 0;

            foreach (var part in parts)
            {
                var value = part.Elastic ? part.Value.PadRight(Math.Max(0, part.NominalWidth - debt)) : part.Value;
                if (part.NewLine)
                {
                    writer.WriteLine(value);
                }
                else
                {
                    writer.Write(value);
                }
                if (part.SetIndentationAt != 0)
                {
                    writer.Indent(part.SetIndentationAt);
                }
                debt = debt + (value.Length - part.NominalWidth);
            }
        }
示例#30
0
        public static void Write(this TableKey key, CSideWriter writer)
        {
            writer.Write("{");

            switch (key.Enabled)
            {
            case null: writer.Write("    "); break;

            case true: writer.Write(" Yes"); break;

            case false: writer.Write(" No "); break;
            }

            writer.Write(";");

            key.Fields.Write(writer);

            if (key.Properties.Any(p => p.HasValue))
            {
                writer.Write(";");

                if (writer.Column > 51)
                {
                    writer.Indent(51);
                    writer.WriteLine("");
                }
                else
                {
                    writer.Indent(writer.Column);
                }

                key.Properties.Write(PropertiesStyle.Field, writer);
                writer.Unindent();
            }
            else
            {
                writer.Write(" ");
            }

            writer.WriteLine("}");
        }