Esempio n. 1
0
        /// <summary>
        /// Get a csv form string.
        /// </summary>
        /// <param name="cellSeparator">CSV cells separator.</param>
        /// <param name="newLineStyle">NewLineStyle.</param>
        /// <returns></returns>
        public string GetEncodeTable(char cellSeparator, NewLineStyle newLineStyle = NewLineStyle.Environment)
        {
            if (mStringBuilder == null)
            {
                mStringBuilder = new StringBuilder();
            }
            else
            {
                mStringBuilder.Clear();
            }
            string newLine = newLineStyle.GetNewLine();

            mStringBuilder.Append(Headers.GetCSVEncodeRow(cellSeparator));
            mStringBuilder.Append(newLine);
            mStringBuilder.Append(Descriptions.GetCSVEncodeRow(cellSeparator));
            mStringBuilder.Append(newLine);
            foreach (var record in Records)
            {
                mStringBuilder.Append(record.GetEncodeRow(cellSeparator));
                mStringBuilder.Append(newLine);
            }
            string encodeCSV = mStringBuilder.ToString();

            mStringBuilder.Clear();
            return(encodeCSV);
        }
Esempio n. 2
0
        /// <summary>
        /// Get decode csv string.
        /// </summary>
        public string GetDecodeTable(char cellSeparator, NewLineStyle newLineStyle = NewLineStyle.Environment)
        {
            if (mStringBuilder == null)
            {
                mStringBuilder = new StringBuilder();
            }
            else
            {
                mStringBuilder.Clear();
            }
            string newLine = newLineStyle.GetNewLine();

            for (int i = 0, len = Headers.Length; i < len; i++)
            {
                mStringBuilder.Append(Headers[i]);
                if (i < len - 1)
                {
                    mStringBuilder.Append(cellSeparator);
                }
                else
                {
                    mStringBuilder.Append(newLine);
                }
            }
            for (int i = 0, len = Descriptions.Length; i < len; i++)
            {
                mStringBuilder.Append(Descriptions[i]);
                if (i < len - 1)
                {
                    mStringBuilder.Append(cellSeparator);
                }
                else
                {
                    mStringBuilder.Append(newLine);
                }
            }

            foreach (var record in Records)
            {
                mStringBuilder.Append(record.GetDecodeRow(cellSeparator));
                mStringBuilder.Append(newLine);
            }
            string decodeTable = mStringBuilder.ToString();

            mStringBuilder.Clear();
            return(decodeTable);
        }
Esempio n. 3
0
        public static string GetNewLine(this NewLineStyle newLineStyle)
        {
            switch (newLineStyle)
            {
            case NewLineStyle.Environment:
                return(EnvironmentNewLine);

            case NewLineStyle.Unix:
                return(UnixNewLine);

            case NewLineStyle.NonUnix:
                return(NonUnixNewLine);

            default:
                return(EnvironmentNewLine);
            }
        }
        private static void AnalyzeDoStatement(SyntaxNodeAnalysisContext context)
        {
            var doStatement = (DoStatementSyntax)context.Node;

            StatementSyntax statement = doStatement.Statement;

            if (!statement.IsKind(SyntaxKind.Block))
            {
                return;
            }

            NewLineStyle newLineStyle = context.GetNewLineBeforeWhileInDoStatement();

            if (newLineStyle == NewLineStyle.None)
            {
                return;
            }

            SyntaxTriviaList trailingTrivia = statement.GetTrailingTrivia();

            if (!trailingTrivia.Any() ||
                trailingTrivia.SingleOrDefault(shouldThrow: false).IsWhitespaceTrivia())
            {
                if (!doStatement.WhileKeyword.LeadingTrivia.Any() &&
                    newLineStyle == NewLineStyle.Add)
                {
                    context.ReportDiagnostic(
                        DiagnosticRules.AddOrRemoveNewLineBeforeWhileInDoStatement,
                        Location.Create(doStatement.SyntaxTree, new TextSpan(statement.FullSpan.End, 0)),
                        "Add");
                }
            }
            else if (SyntaxTriviaAnalysis.IsOptionalWhitespaceThenEndOfLineTrivia(trailingTrivia))
            {
                if (doStatement.WhileKeyword.LeadingTrivia.IsEmptyOrWhitespace() &&
                    newLineStyle == NewLineStyle.Remove)
                {
                    context.ReportDiagnostic(
                        DiagnosticRules.AddOrRemoveNewLineBeforeWhileInDoStatement,
                        Location.Create(doStatement.SyntaxTree, new TextSpan(trailingTrivia.Last().SpanStart, 0)),
                        properties: DiagnosticProperties.AnalyzerOption_Invert,
                        "Remove");
                }
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Get decode csv string.
 /// </summary>
 public string GetDecodeTable(NewLineStyle newLineStyle = NewLineStyle.Environment)
 {
     return(GetDecodeTable(CellSeparator, newLineStyle));
 }