public static string FormatValue(object value, ReportColumnFormat format, int precision) { if (value == null) { return(string.Empty); } switch (format) { case ReportColumnFormat.Text: return(value.ToString()); case ReportColumnFormat.Boolean: return((bool)value ? "Yes" : "No"); case ReportColumnFormat.Number: var numberFormat = $"{{0:N{precision}}}"; return(string.Format(numberFormat, value)); case ReportColumnFormat.Currency: var currencyFormat = $"{{0:C{precision}}}"; return(string.Format(currencyFormat, value)); case ReportColumnFormat.Percentage: var percentFormat = $"{{0:P{precision}}}"; return(string.Format(percentFormat, value)); default: throw new ArgumentOutOfRangeException(nameof(format), format.ToString()); } }
private static int GetDefaultPrecision(ReportColumnFormat format) { switch (format) { case ReportColumnFormat.Percentage: return(2); default: return(0); } }