private void WritePropertyInternal(string smPropertyName, object value) { if (value == null) { WritePropertyInternal(smPropertyName, ""); } else if (value is List <string> valAsList) { StreamWriter.Write($"{MSDFile.ValueStartMarker}{smPropertyName}{MSDFile.ParamMarker}"); var first = true; foreach (var entry in valAsList) { if (!first) { StreamWriter.Write(MSDFile.ParamMarker); } if (!string.IsNullOrEmpty(entry)) { StreamWriter.Write(MSDFile.Escape(entry)); } first = false; } StreamWriter.WriteLine(MSDFile.ValueEndMarker); } else if (value is double d) { WritePropertyInternal(smPropertyName, d.ToString(SMCommon.SMDoubleFormat)); } else { WritePropertyInternal(smPropertyName, value.ToString()); } }
/// <summary> /// Write the given Chart. /// </summary> /// <param name="chart">Chart to write.</param> private void WriteChart(Chart chart) { // We need a valid ChartType. If we don't have one, don't write the Chart. // Logging about ChartType errors performed in DetermineChartDifficultyTypes. if (!TryGetChartType(chart, out var chartType)) { return; } var charTypeStr = chartType.ToString().Replace('_', '-'); var chartDifficultyType = GetChartDifficultyTypeString(chart); var radarValues = GetRadarValues(chart); // Write chart header. StreamWriter.WriteLine(); StreamWriter.WriteLine($"//---------------{charTypeStr} - {MSDFile.Escape(chart.Description ?? "")}----------------"); WriteChartNotesValueStart(chart); StreamWriter.WriteLine($" {charTypeStr}{MSDFile.ParamMarker}"); StreamWriter.WriteLine($" {MSDFile.Escape(chart.Description)}{MSDFile.ParamMarker}"); StreamWriter.WriteLine($" {chartDifficultyType}{MSDFile.ParamMarker}"); StreamWriter.WriteLine($" {(int)chart.DifficultyRating}{MSDFile.ParamMarker}"); StreamWriter.WriteLine($" {radarValues}{MSDFile.ParamMarker}"); // Write all the notes. WriteChartNotes(chart); // Mark the chart as complete. StreamWriter.WriteLine(MSDFile.ValueEndMarker); }
private void WritePropertyInternal(string smPropertyName, string value) { if (string.IsNullOrEmpty(value)) { StreamWriter.WriteLine( $"{MSDFile.ValueStartMarker}{smPropertyName}{MSDFile.ParamMarker}{MSDFile.ValueEndMarker}"); } else { StreamWriter.WriteLine( $"{MSDFile.ValueStartMarker}{smPropertyName}{MSDFile.ParamMarker}{MSDFile.Escape(value)}{MSDFile.ValueEndMarker}"); } }