/// <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); }
/// <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); }
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"); } } }
/// <summary> /// Get decode csv string. /// </summary> public string GetDecodeTable(NewLineStyle newLineStyle = NewLineStyle.Environment) { return(GetDecodeTable(CellSeparator, newLineStyle)); }